我正在使用WEB .API开发Web服务。我跟随example,其中包括:
public HttpResponseMessage PostProduct(Product item)
{
item = repository.Add(item);
var response = Request.CreateResponse<Product>(HttpStatusCode.Created, item);
string uri = Url.Link("DefaultApi", new { id = item.Id });
response.Headers.Location = new Uri(uri);
return response;
}
用于创建POST方法,允许客户端在ordert中以POST方式发送数据,以便将这些数据插入数据库中(我使用实体框架)。
然而,我想要做的是略有不同,因为我希望传递给Web服务的数据不与数据库的任何对象相关联:我有一些数据应该写在多个表中。例如:
{"activity":"sport","customValue":"22","propertyIndex":"122-x"}
激活值(运动)应该在一个表上写入,而其他两个参数(customValue e properyIndex)应该在另一个表上写入。
所以我认为我需要解析POST中收到的json文件然后执行两个插入操作。
我该如何执行此任务?
答案 0 :(得分:7)
您需要在Web API项目中使用Activity,CustomValue,PropertyIndex属性创建一个对象:
public class MyTestClass
{
public string Activity { get; set; }
public string CustomValue { get; set; }
public string PropertyIndex { get; set; }
}
和HttpPost将是:
[HttpPost]
public HttpResponseMessage Post(MyTestClass class)
{
// Save Code will be here
return new HttpResponseMessage(HttpStatusCode.OK);
}
答案 1 :(得分:3)
产品类应具有Activity,CustomValue和PropertyIndex属性以与发布的数据绑定。
[HttpPost]
[ActionName("alias_for_action")]
public HttpResponseMessage PostProduct([FromBody] Product item)
{
//your code here
var response = new HttpResponseMessage(HttpStatusCode.Created)
{
Content = new StringContent("Your Result")
};
return response;
}
如果您想使用Entity Framework更新数据库中的两个表,那么您必须执行两个插入操作。