RESTful

Posted huanzhilu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RESTful相关的知识,希望对你有一定的参考价值。

RESTful = Representational State Transfer 即表现层状态转移 加 ful (即形容词后缀) 则表示是形容词性的

这样说可能不好理解,表现层应该就是我们操作的对象即资源,通过CRUD等操作 使用不同的请求方式 

GET(获取资源)

POST(创建资源)

PUT(更新资源)

PATCH(局部更新)

DELETE(删除资源)

以GET,POST为例

    [HttpGet("{id}")]
        public IActionResult Get(string id)
        {
            var data = new GoodsEnt()
            {
                id = id,
                name = "iphone11s pro max",
                price = 9999,
                num = 100
            };

            return Ok(data);
        }
  [HttpPost]
        public IActionResult Post([FromBody] GoodsInfo goodsInfo)
        {
            if (goodsInfo == null)
            {
                return BadRequest();
            }
            string id = Guid.NewGuid().ToString();
            var data = new GoodsEnt()
            {
                id = id,
                name = goodsInfo.name,
                price = goodsInfo.price,
                num = goodsInfo.num
            };

            return CreatedAtRoute(new { id = id }, data);
        }

  前端使用post方式创建资源,这里我们使用CreatedAtRoute返回(需要引用.net core mvc),他会在header里多返回一个拼接好的地址,这意味着我们post完之后直接可以使用这个地址来请求get方法技术图片

 

 若在HTTPGet后面加“{id}”,我们还可以http://localhost:5000/api/Goods/caaf4477-4e5c-40db-bba3-363fcbf916a6 这样访问。

那RSETful风格有什么好处呢?

1.统一资源接口

CRUD接口名字一致,无需要再创建其他接口名字

2.职责清晰

通过不同的请求方式,可以很清晰的知道每个接口的作用

 

以上是关于RESTful的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 中 10 行代码构建 RESTful 风格应用

有没有办法为 RESTful 堆栈生成样板代码?

restful 架构风格的curd(增删改查)

处理 Restful 服务

使用 WCF 客户端访问 RESTful 服务时访问 HTTP 状态代码

通俗易懂的RESTful API实践详解(含代码)