【发布时间】:2016-11-03 18:41:52
【问题描述】:
我创建了一个 WebAPI Web 应用程序,我想在 POST 时验证数据,并根据结果调用外部 API。
除验证结果外,数据将按原样保存在数据库中。
仅对调用外部 API 进行验证。
我已经创建了发布到外部 API 的逻辑,但我不太确定这将是验证数据的最佳方式。
我的模型包括 10 个类,如下面的 Class1 具有多个属性,我为每个类创建了一个控制器。 属性可以具有真/假值,但作为字符串。
public class Class1
{
public ICollection<Class1Data> Data { get; set; }
}
public class Class1Data
{
public int Id { get; set; }
public string Prop1{ get; set; }
public string Prop2 { get; set; }
..
public string Prop10 { get; set; }
}
用于 POST 的 WebAPI 控制器:
[ResponseType(typeof(Class1))]
public async Task<IHttpActionResult> PostClass1(Class1 class1)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Class1.Add(class1);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = Class1.Id }, class1);
}
我设法以某种方式验证一个属性并 POST 到外部 API,但不太确定如何为我的所有模型类做到这一点(每个模型类大约有 10、20 个道具)。
var notValid = Class1.Data.Where(x => x.Prop1 == "False");
if (notValid != null)
{
foreach ( var fault in notValid )
{
// Call external API using fault.Prop1 / fault.Prop5 / ..
}
}
我怎样才能做到这一点? 我希望我的问题对你有意义。
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 asp.net-web-api