asp.net – 如何在asp net core api中使用Created(或CreatedAtAction / C
发布时间:2020-05-25 09:43:26 所属栏目:asp.Net 来源:互联网
导读:我想告诉消费者我的api关于新创建的对象的位置.我知道有Created()CreatedAtRoute()和CreatedAtAction(),但我不确定如何使用它. 这是我尝试过的: 我有一个Get资源,我想指出.它需要一个ID作为输入: [HttpGet(/${id}, Name = GetProduct)] [ProducesResponseTy
|
我想告诉消费者我的api关于新创建的对象的位置.我知道有Created()CreatedAtRoute()和CreatedAtAction(),但我不确定如何使用它. 这是我尝试过的: 我有一个Get资源,我想指出.它需要一个ID作为输入: [HttpGet("/${id}",Name = "GetProduct")]
[ProducesResponseType(typeof(Produkt),200)]
public IActionResult Get([FromRoute] int id)
{
// some code...
return Ok(...);
}
当通过我的POST路由创建产品时,我想通过Location标头指向此资源: 尝试1 [HttpPost]
[ProducesResponseType(typeof(Produkt),200)]
public IActionResult CreateNewProduct([FromBody] ProduktDtoForCreate productFromBody)
{
//...
return CreatedAtRoute("GetProduct",new { id = productToCreate.Id },productToCreate);
}
这将返回位置标题:http://localhost:5000/ $15003 尝试2 [HttpPost]
[ProducesResponseType(typeof(Produkt),200)]
public IActionResult CreateNewProduct([FromBody] ProduktDtoForCreate productFromBody)
{
//...
return Created(new Uri($"{Request.Path}/{productToCreate.Id}",UriKind.Relative),productToCreate);
}
这个工作并返回/api/v1.0/produkte/16004,但似乎不需要使用当前请求指向新位置.另外我不确定这是不是很好的做法? 解决方法在Get方法的路由中,同时取前导/和$out(即它应该只是“{id}”).领先/在那里意味着路线将相对于应用程序的基础;取出它会使方法的路径相对于控制器的基本路径. $被视为路径中的文字字符,因此它出现在尝试1中的位置标题中.一旦进行了更改,您应该会发现您的CreatedAtRoute调用按预期工作.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 在ValidationSummary上动态显示bootstrap的周围
- asp-classic – 从Classic ASP执行存储过程
- asp.net-mvc – 具有Microsoft.AspNet.Identity的自定义成员
- asp.net-mvc – 为FileResult设置ETag – MVC 3
- asp.net-mvc-4 – 在主机上找不到Clearscript文件
- asp.net – 在IIS上运行Python和Django
- 将ASP.Net MVC的单页添加到现有的Web窗体应用程序中?
- 在不可见的asp.net面板中阻止数据绑定
- 剃刀 – 错误RZ3007:目标标签名称不能为空或空格
- asp.net – 什么是Html.AntiForgeryToken帮助函数?
推荐文章
站长推荐
- asp-classic – 经典的ASP gremlims,每当使用HTM
- asp.net-mvc – 如何阻止Elmah伐木?
- asp.net-mvc – 如何从MVC 3中的View中将List或C
- asp.net-mvc – ASP.Net MVC 3 – JSON模型绑定到
- asp.net – 使用AJAX进行WCF调用
- asp.net core 2.0 – 多个项目解决方案docker文件
- asp.net-mvc-4 – 后退点击刷新页面 – MVC 4
- asp.net – 如何在.aspx页面中访问c#变量的值?
- asp.net-mvc-3 – MVC-3和Html.Serialize(ASP.NE
- asp.net-mvc-3 – Ninject和OnePerRequestModule
热点阅读
