关于 Restful API 的构筑

Restful API,大概算是用于使用 HTTP(S) 协议,与 Web 服务器交互,进行对象的增删改查的一种通信方式。

HTTP 现在共九个方法,其中的一个被废弃(CONNECT)。

HTTP 响应的全部内容,可以使用 curl 加 -i 或 -I 参数查看,也可以使用浏览器控制台的网络标签查看。

使用的 HTTP 的方法:

GET 方法,执行查询,

POST 方法做新增,

PATCH 方法做修改,

DELETE 方法做删除,

PUT 方法做全覆盖性新增或完全修改。

URL 地址使用:

“/资源”,

“/资源/标识符”,

“/资源/标识符/合集字段”,

“/资源/标识符/合集字段/合集标识符” 的形式。

具体 HTTP 方法的操作意义:

对“/资源”路径, GET 方法,执行符合条件的分页查询,返回该类资源的列表;POST 方法执行“新增”;DELETE 方法执行批量删除,传入多个资源标识符。

对“/资源/标识符”路径,GET 方法,返回指定的资源个体;PATCH 方法,对指定的资源个体修改;DELETE 方法,删除指定的资源个体。

对“/资源/标识符/字段”路径,PATCH 方法,局部修改某个资源个体的某个字段。

对“/资源/标识符/合集型字段”,GET 方法,复合条件分页查询返回指定的资源个体的相关联的资源;POST 方法,向指定资源个体,添加关联的资源;DELETE 方法,批量移除指定资源个体的关联关系。

对“/资源/标识符/合集型字段/合集标识符”,DELETE 方法,移除指定合集字段的关联关系。

返回的 HTTP 状态码:

403 表示访问操作无权限,

401 表示访问操作需要用户登录,即身份验证,

404 表示访问资源类型或资源个体不存在。

400 状态码,表示其它由于客户端问题导致的错误,例如传入参数的类型、范围验证错误。

405 ,默认的状态,表示对该地址的请求方法不被允许。

POST 创建操作,返回 206,表示创建完成,并携带 Location 的 HTTP Header 指明新资源的位置,即用于 GET 方法查询操作的“/资源类型/标识符”。

HTTP 响应返回的内容格式,一般是 JSON 格式。应该也可以使用 YAML。

网页里,表单提交只支持 GET 和 POST 方法,使用 GET 做查询操作,POST 做增删改操作,可以给 Restful API 地址追加后缀“/new”“/edit”“/delete”之类的替代。

AJAX 和 Fetch 请求都支持五个 HTTP 方法,GET,POST,PUT,PATCH,DELETE。

现在讲前后端分离的多,大概要求服务器内容的增删改查的 API 和前端网页地址,分开部署,到不同 URL 路径,或不同域名、子域名。

缺个明白的图。

现在据说 GraphQL 比 Restful API 更好,主要在非网页的客户端,有利于节省请求次数,节省总体流量。

原文地址:https://www.cnblogs.com/silvestris/p/14844444.html