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 更好,主要在非网页的客户端,有利于节省请求次数,节省总体流量。