C# RESTful API返回约定
目前我还在学习c#WebAPI,我遇到了一些问题 下面的代码片段显示了我的一部分代码,这些代码将在数据库中创建一个新的student,我正在尝试创建对象,如果成功,它将返回一个HTTP创建的HTTP响应代码并返回student对象 如果失败,它应该返回HTTP-BADDRequest响应代码,并返回STUDENT对象 但是,为了返回响应代码,由于返回类型设置的原因,我无法返回student对象,反之亦然,因此出现了进退两难的局面C# RESTful API返回约定,c#,asp.net-web-api,C#,Asp.net Web Api,目前我还在学习c#WebAPI,我遇到了一些问题 下面的代码片段显示了我的一部分代码,这些代码将在数据库中创建一个新的student,我正在尝试创建对象,如果成功,它将返回一个HTTP创建的HTTP响应代码并返回student对象 如果失败,它应该返回HTTP-BADDRequest响应代码,并返回STUDENT对象 但是,为了返回响应代码,由于返回类型设置的原因,我无法返回student对象,反之亦然,因此出现了进退两难的局面 // POST api/student publi
// POST api/student
public HttpResponseMessage PostStudent(Models.Student student)
{
if (DBManager.createStudent(student) != null)
return new HttpResponseMessage(HttpStatusCode.Created);
// HOW TO RETURN STUDENT OBJECT?
else
return new HttpResponseMessage(HttpStatusCode.BadRequest);
// HOW TO RETURN STUDENT OBJECT?
}
我将告诉您我自己为公司构建web服务器的经验:不要使用WebApi。有很多限制,简而言之,支持非常狭窄的使用场景。只要坚持使用传统的MVC控制器,生活就会轻松得多:
public ActionResult PostStudent(Models.Student s){
//do something
Response.StatusCode = 400;
return Json(s);
}
具有一个名为value
的可选形式参数,可用于创建同时包含状态代码和对象的HttpResponseMessage
return Request.CreateResponse(HttpStatusCode.Created, student);
如果操作失败,返回学生对象有什么意义?我也在学习WebAPI。这只是一个例子。在某些情况下,您可能需要这样做。