asp.net-mvc – 在REST Web API调用中返回复杂对象
发布时间:2020-05-24 09:55:05 所属栏目:asp.Net 来源:互联网
导读:我有一个Web API POST方法,它将自定义复杂对象MyObjectRequest作为参数排除,并返回自定义复杂对象MyObjectResponse. MyObjectResponse对象具有自定义复杂对象Token作为属性. public class MyObjectRequest{ public string AppName { get; set; } public stri
|
我有一个Web API POST方法,它将自定义复杂对象MyObjectRequest作为参数排除,并返回自定义复杂对象MyObjectResponse. MyObjectResponse对象具有自定义复杂对象Token作为属性. public class MyObjectRequest
{
public string AppName { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string AppIdentifier { get; set; }
}
public class MyObjectResponse
{
public bool Authenticated { get; set; }
public Token AccessToken { get; set; }
}
public class Token
{
public string Id { get; set; }
public string ExpirationDate { get; set; }
}
我有Web API控制器,当用户进行HTTP POST调用时,我想返回MyObjectResponse. public class MyCustomController : Controller
{
public MyObjectResponse Post([FromBody] MyObjectRequest request)
{
//do my work here
}
}
这是制作MyCustomController API签名的正确方法吗? 解决方法你有什么可以工作的.我倾向于将这些对象包装在HttpResponseMessage中,如下所示:[HttpPost]
public HttpResponseMessage Post([FromBody] MyObjectRequest request)
{
if (ModelState.IsValid) // and if you have any other checks
{
var myObjectResponse = new MyObjectResponse();
// in your case this will be result of some service method and then
return Request.CreateResponse(HttpStatusCode.Created,myObjectResponse);
}
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
[HttpPut]
public HttpResponseMessage Update([FromBody] UserModel userModel)
{
if (ModelState.IsValid)
{
var myObjectResponse = new MyObjectResponse();
// in your case this will be result of some service method and then
return Request.CreateResponse(HttpStatusCode.Accepted);
}
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
[HttpGet]
public HttpResponseMessage Get(int id)
{
var myObjectResponse = GetObjectFromDb(id);
// in your case this will be result of some service method and then
if(myObjectResponse == null)
return Request.CreateResponse(HttpStatusCode.NotFound);
return Request.CreateResponse(HttpStatusCode.OK,myObjectResponse);
}
通过这种方式,客户端可以查看状态代码并决定如何处理响应,而无需实际尝试反序列化它.您可以在this MSDN article获得有关HttpStatusCodes的更多信息. 他们在WebApi2中添加了更多方法,如ApiController.Ok.有关详细信息,请查看此ASP.NET WEB API overview page (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何显示或隐藏基于角色的控件 – ASP.NET MVC 4 Razor
- asp.net-mvc – 没有控制器或操作名称的Asp.net mvc路由
- asp.net-mvc – 将EF 4.1代码首先将ASP.NET MVC3部署到中等
- asp.net-mvc – MVC中TextBoxFor的DisplayFormat
- asp.net-mvc-5 – 使用FormsAuthenticationTicket的MVC Ide
- 如何在asp.Net中的脚本标签上使用runat =“server”
- 在asp.net App_Code目录中使用Nemerle
- 学习LINQ的资源?
- asp.net – MVC5认证中的“和主域之间的信任关系失败”
- asp.net-mvc – JSON,ASP.NET MVC – MaxJsonLength异常
推荐文章
站长推荐
热点阅读
