1 REST
REST是一种软件架构风格,如果你的接口是REST接口,那么该接口可被认为是REST风格的。
REST接口是围绕资源展开的,HTTP 的URL即资源,利用HTTP的协议,其实rest本也可以和HTTP无关,但是现在大家普遍的使用REST都是依托于HTTP协议。
2 URI语法
URI = scheme “://” authority “/” path [ “?” query ][ “#” fragment ]
scheme: 指底层用的协议,如http、https、ftp host: 服务器的IP地址或者域名 port: 端口,http中默认80 path: 访问资源的路径,就是咱们各种web 框架中定义的route路由 query: 为发送给服务器的参数 fragment: 锚点,定位到页面的资源,锚点为资源id
3 URL路径
- 3.1 endpoint
举例来说,有一个API提供学校的信息,包括各个班级,老师,同学的信息,则它的路径应该设计成下面这样:
https://school/v1/classes https://school/v1/teachers https://school/v1/students
- 3.1 URL规则
- 1 名词对应数据库中的表
- 2 URL中不能有动词
- 3 URL结尾不应该包含斜杠“/”
- 4 正斜杠分隔符”/“必须用来指示层级关系
- 5 使用连字符”-“来提高URL的可读性,而不是使用下划线”_”
- 6 URL路径中首选小写字母
- 7 URL路径名词均为复数
4 HTTP动词
对于URL资源的具体操作类型,由HTTP动词表示。
常用的HTTP动词有下面五个(括号里是对应的SQL命令)。
GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。 PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。 PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。 DELETE(DELETE):从服务器删除资源。
5 资源过滤
?limit=10:指定返回记录的数量 ?offset=10:指定返回记录的开始位置。 ?page=2&per_page=100:指定第几页,以及每页的记录数。 ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。 ?teacher_subject=语文:指定筛选条件
6 返回
返回状态码推荐标准HTTP状态码
200 OK 服务器返回用户请求的数据,该操作是幂等的 201 CREATED 新建或者修改数据成功 204 NOT CONTENT 删除数据成功 400 BAD REQUEST 用户发出的请求有问题,该操作是幂等的 401 Unauthoried 表示用户没有认证,无法进行操作 403 Forbidden 用户访问是被禁止的 422 Unprocesable Entity 当创建一个对象时,发生一个验证错误 500 INTERNAL SERVER ERROR 服务器内部错误,用户将无法判断发出的请求是否成功 503 Service Unavailable 服务不可用状态,多半是因为服务器问题,例如CPU占用率大,等等 ......
返回结果
GET /teachers 返回资源列表 GET /teachers/:id 返回单独的资源 POST /teachers 返回新生成的资源对象 PUT /teachers/:id 返回完整的资源对象 PATCH /teachers/:id 返回被修改的属性 DELETE /teachers/:id 返回一个空文档
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225800.html原文链接:https://javaforall.net
