前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速学习-RESTFul设计风格

快速学习-RESTFul设计风格

作者头像
cwl_java
发布2020-03-27 09:42:17
1.2K0
发布2020-03-27 09:42:17
举报
文章被收录于专栏:cwl_Javacwl_Java

二、RESTFul设计风格

1、Rest与RestFul

REST(英文:Representational State Transfer,简称REST),表述性状态转移,指的是一组架构原则。

Restful: 遵守了rest 原则 的web服务或web应用。

2、API设计六要素

资源路径(URI)、HTTP动词(Method)、过滤信息(query-string)、状态码(Status-code)、错误信息(Error)、返回结果(Result)

在这里插入图片描述
在这里插入图片描述

1)资源路径URI

资源:所有在服务器保存的数据(如:音乐/视频/文章/个人信息…)都是服务器端资源.(项目中资源通常都是指的数据表的一条数据)

URI(Uniform Resource Identifier):统一资源标志符,包含URL和URN。

URL(Uniform Resource Locator):统一资源定位符

URN(Uniform Resource Name):统一资源命名

在HTTP协议中, URI的组成如下

Schema://host[:port]/path[?query-string]

Schema: 使用的协议类型, 如http/https/ftp等

host: 主机域名或IP

port: 端口号(可选)

path: 路径

query-string: 查询参数(可选)

例子:

http://www.tpshop.com/users

https://www.tpshop.com:8080/users?id=100

2)HTTP动词(请求方式)

对于资源, 一般有4个操作, CURD(增/删/改/查)

GET: 从服务器获取资源(一项或多项)

POST: 在服务器新建一个资源

PUT: 在服务器更新资源, 服务器返回完整的属性

DELETE: 从服务器删除资源

3)过滤信息

通常也叫做请求参数或查询字符串。

4)响应状态码

服务端返回的信息, 用来告诉客户端操作结果。

常见状态码:

状态码

含义

说明

200

OK

操作成功, 并返回数据

201

CREATED

新建成功

204

NO CONTENT

删除成功

400

BAD REQUEST

请求语法错误

403

Forbidden

请求没有权限的资源

404

NOT FOUND

没有找到请求的资源

GET

200(OK) - 表示已在响应中发出 204(无内容) - 资源有空表示 301(Moved Permanently) - 资源的URI已被更新 303(See Other) - 其他(如,负载均衡) 304(not modified)- 资源未更改(缓存) 400 (bad request)- 指代坏请求(如,参数错误) 404 (not found)- 资源不存在 406 (not acceptable)- 服务端不支持所需表示 500 (internal server error)- 通用错误响应 503 (Service Unavailable)- 服务端当前无法处理请求

POST 200(OK)- 如果现有资源已被更改 201(created)- 如果新资源被创建 202(accepted)- 已接受处理请求但尚未完成(异步处理) 301(Moved Permanently)- 资源的URI被更新 303(See Other)- 其他(如,负载均衡) 400(bad request)- 指代坏请求 404 (not found)- 资源不存在 406 (not acceptable)- 服务端不支持所需表示 409 (conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持 500 (internal server error)- 通用错误响应 503 (Service Unavailable)- 服务当前无法处理请求

PUT 200 (OK)- 如果已存在资源被更改 201 (created)- 如果新资源被创建 301(Moved Permanently)- 资源的URI已更改 303 (See Other)- 其他(如,负载均衡) 400 (bad request)- 指代坏请求 404 (not found)- 资源不存在 406 (not acceptable)- 服务端不支持所需表示 409 (conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持 500 (internal server error)- 通用错误响应 503 (Service Unavailable)- 服务当前无法处理请求

DELETE 200 (OK)- 资源已被删除 301 (Moved Permanently)- 资源的URI已更改 303 (See Other)- 其他,如负载均衡 400 (bad request)- 指代坏请求 404 (not found)- 资源不存在 409 (conflict)- 通用冲突 500 (internal server error)- 通用错误响应

503 (Service Unavailable)- 服务端当前无法处理请求

5)错误信息

如果状态码是4xx或者5xx, 需要告诉客户端对应的错误信息. 通常以Json格式返回:

代码语言:javascript
复制
{
“error”: “错误信息”,
}

6)返回结果

针对不同的操作, 服务需要返回的结果应该符合这样的规范

GET /collections – 返回资源列表(数组)

GET /collections/:id – 返回单个资源 eg. /collections/1

POST /collections – 返回新生成的资源

PUT /collections/:id – 返回资源的完整属性

DELETE /collections/:id – 返回204状态码+空文档

实际开发中,通常会将 状态码、错误信息、返回数据,都放到返回结果中。

比如

代码语言:javascript
复制
{"code":200, 'msg':'success', "data":{"id":1,"goods_name":"tp"}}

3、RestFul接口设计风格

RESTFul是一种软件设计风格, 主要用于有客户端与服务端交互的软件.

RESTFul 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。

RESTFul风格的数据接口示例:

以新闻资源为例:URI及HTTP动词设计如下

HTTP动词

URI路径

说明

GET

http://域名/news

获取列表数据

GET

http://域名/news/:id

根据id获取一条数据

POST

http://域名/news

添加一条数据

PUT

http://域名/news/:id

根据id修改一条数据

DELETE

http://域名/news/:id

根据id删除一条数据

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、RESTFul设计风格
    • 1、Rest与RestFul
      • 2、API设计六要素
        • 1)资源路径URI
        • 2)HTTP动词(请求方式)
        • 3)过滤信息
        • 4)响应状态码
        • 5)错误信息
        • 6)返回结果
      • 3、RestFul接口设计风格
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档