ASP.NET Core WebAPI 使用CreatedAtRoute通知消费者

时间:2020-02-14 11:50:21   收藏:0   阅读:135

一、目的

我想告诉消费者我的api关于新创建的对象的位置

二、方法说明

public virtual Microsoft.AspNetCore.Mvc.CreatedAtRouteResult CreatedAtRoute (string routeName, object routeValues, object content);

Parameters

三、示例代码

这里的Student和StudentDto类就不展示了,比较简单

[ApiController]
[Route("api/{Controller}")]
public class HomeController : Controller
{
    [HttpGet("students")]
    public IActionResult GetStudents()
    {
        return Ok(DbContext.Db.ToList());
    }

    [HttpGet("students/{id}", Name = nameof(GetStudents))]
    public IActionResult GetStudents(Guid id)
    {
        return Ok(DbContext.Db.FirstOrDefault(x => x.Id == id));
    }

    [HttpPost("student")]
    public IActionResult AddStudent([FromForm]Student student)
    {
        var stuDto = new StudentDto()
        {
            Id = Guid.NewGuid(),
            Name = student.FirstName + student.LastName,
            Age = DateTime.Now.Year - student.Birthday.Year
        };
        DbContext.Db.Add(stuDto);
        return CreatedAtRoute(nameof(GetStudents), new { id = stuDto.Id }, stuDto);
    }
}

四、测试

1. 发送Post请求,提交表单

技术分享图片

2. 查看返回结果

返回值Body
技术分享图片

返回值Headers
技术分享图片

3. 复制Location值,发送Get请求,验证结果

技术分享图片

原文:https://www.cnblogs.com/zhaoshujie/p/12306481.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!