栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ASP.NET Core WebAPI Get Post Put Delete

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ASP.NET Core WebAPI Get Post Put Delete

HTTP 操作谓词CRUD 操作ASP.NET Core 属性
GET读取[HttpGet]
POST创建[HttpPost]
PUT更新[HttpPut]
DELETE删除[HttpDelete]

 

GET 获取数据

获取全部数据

[HttpGet]
public ActionResult> GetAll() =>
    PizzaService.GetAll();
  • 查询服务以获取所有披萨,并通过 Content-Type 的值 application/json 自动返回数据。

获取单个实例

[HttpGet("{id}")]
public ActionResult Get(int id)
{
    var pizza = PizzaService.Get(id);

    if(pizza == null)
        return NotFound();

    return pizza;
}
  • 要求 pizza/ 之后的 URL 段中包含 id 参数的值。 请记住,控制器级别的 /pizza 属性定义了 [Route] 模式。
  • 查询数据库以获取与所提供的 id 参数匹配的披萨。

上述操作中使用的每个 ActionResult 实例都映射到下表中对应的 HTTP 状态代码:

ASP.NET Core
操作结果
HTTP 状态代码说明
Ok 为隐式200内存中缓存中存在与所提供的 id 参数匹配的产品。
该产品包含在由 accept HTTP 请求标头中所定义的媒体类型(默认情况下为 JSON)的响应正文中。
NotFound404内存中缓存中不存在与所提供的 id 参数匹配的产品。
POST 新添
[HttpPost]
public IActionResult Create(Pizza pizza)
{            
    PizzaService.Add(pizza);
    return CreatedAtAction(nameof(Create), new { id = pizza.Id }, pizza);
}

CreatedAtAction 方法调用中的第一个参数表示操作名称。 nameof 关键字用于避免对操作名称进行硬编码。 CreatedAtAction 使用操作名称来生成 location HTTP 响应标头,该标头包含新创建的披萨的 URL

 此方法并不像我们在 Get() 方法中看到的那样返回披萨列表,而是返回 IActionResult 响应。IActionResult 可让客户端知道请求是否成功,并提供新创建的披萨的 ID。 IActionResult 通过使用标准 HTTP 状态代码来完成该操作,因此,无论客户端使用哪种语言或者在哪个平台上运行,它都能轻松地与客户端集成。

ASP.NET Core
操作结果
HTTP 状态代码说明
CreatedAtAction201已将披萨添加到内存中缓存。
该披萨包含在由 accept HTTP 请求标头中所定义的媒体类型(默认情况下为 JSON)的响应正文中。
BadRequest 为隐式400请求正文的 pizza 对象无效。

PUT 修改
[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
    if (id != pizza.Id)
        return BadRequest();
           
    var existingPizza = PizzaService.Get(id);
    if(existingPizza is null)
        return NotFound();
   
    PizzaService.Update(pizza);           
   
    return NoContent();
}
  • 要求 pizza/ 之后的 URL 段中包含 id 参数的值。
  • 返回 IActionResult,因为在运行时之前,ActionResult 返回类型未知。 BadRequest、NotFound 和 NoContent 方法分别返回 BadRequestResult、NotFoundResult 和 NoContentResult 类型。
  • 由于控制器批注通过 [ApiController] 属性进行,因此暗示着将在请求正文中找到 Pizza 参数。
ASP.NET Core
操作结果
HTTP 状态代码说明
NoContent204已在内存中缓存中更新了披萨。
BadRequest400请求正文的 Id 值与路由的 id 值不匹配。
BadRequest 为隐式400请求正文的 Pizza 对象无效。

DELETE 删除
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
    var pizza = PizzaService.Get(id);
   
    if (pizza is null)
        return NotFound();
       
    PizzaService.Delete(id);
   
    return NoContent();
}
  • 要求 pizza/ 之后的 URL 段中包含 id 参数的值。
  • 返回 IActionResult,因为在运行时之前,ActionResult 返回类型未知。 NotFound 和 NoContent 方法分别返回 NotFoundResult 和 NoContentResult 类型。
ASP.NET Core
操作结果
HTTP 状态代码说明
NoContent204已从内存中缓存中删除了披萨。
NotFound404内存中缓存中不存在与所提供的 id 参数匹配的披萨。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877300.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号