甚么是web API接口?
明白了申请形式,提供对应后盾所需参数,申请url链接能够失去后盾的呼应数据
申请形式:get,post,put,patch....
申请参数:json或xml格局的key-value类型数据
呼应后果:前往json或xml格局的key-value类型数据
怎样写接口?
参照某种规定(标准)书写url链接,同时依据规定制订申请形式,申请数据与呼应后果
接口标准:webapi接口标准:restful
RESTful引见
REST与技巧有关,代表的是一种软件架构格调,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”或“体现层状态转化”。
域名
用api要害字来标识接口url
https://api.example.com https://example.org/api/
注:看到api字眼,就代表该申请url链接是实现先后台数据交互的
版本
1. 将版本信息放正在URL中,如:
https://api.example.com/v1/ https://api.example.com/v2/
v1,v2代表没有同数据版本的提现,条件是一种数据资本有多个版本
2. 将版本信息放正在申请头中。
url门路
视网络上任何货色都是资本,均应用名词示意(普通为单数方式)
https://api.example.com/v1/zoos https://api.example.com/v1/animals https://api.example.com/v1/employees
正在url链接中处分没有要呈现操作资本的动词
谬误树模:https://api.百度.com/delete-user
非凡的接口能够呈现动词,由于这些接口普通不一个明白的资本,或是动词就是接口的外围含意
https://api.百度.com/place/search https://api.百度.com/login
method申请形式
GET :从效劳器掏出资本(一项或多项)
POST :正在效劳器新建一个资本
PUT :正在效劳器更新资本(客户端提供扭转后的完好资本)
PATCH :正在效劳器更新资本(客户端提供扭转的属性)
DELETE :从效劳器删除了资本
过滤
经过正在url上传参的方式通报搜寻前提
https://api.example.com/v1/zoos?limit=10:指定前往记载的数目 https://api.example.com/v1/zoos?offset=10:指定前往记载的开端地位 https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,和每一页的记载数 https://api.example.com/v1/zoos?sortby=name&order=asc:指定前往后果依照哪一个属性排序,和排序程序 https://api.example.com/v1/zoos?animal_type_id=1:指定挑选前提
状态码
200 OK - [GET]:效劳器胜利前往用户申请的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修正数据胜利。
202 Accepted - [*]:示意一个申请曾经进入后盾列队(异步义务)
204 NO CONTENT - [DELETE]:用户删除了数据胜利。
301:永世重定向
302:临时重定向
400 INVALID REQUEST - [POST/PUT/PATCH]:用户收回的申请有谬误,效劳器不进行新建或修正数据的操作,该操作是幂等的。
401 Unauthorized - [*]:示意用户不权限(令牌、用户名、明码谬误)。
403 Forbidden - [*] 示意用户失去受权(与401谬误绝对),然而拜访是被制止的。
404 NOT FOUND - [*]:用户收回的申请针对的是没有存正在的记载,效劳器不进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户申请的格局不成患上(比方用户申请JSON格局,然而只有XML格局)。
410 Gone -[GET]:用户申请的资本被永世删除了,且没有会再失去的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创立一个工具时,发作一个验证谬误。
500 INTERNAL SERVER ERROR - [*]:效劳器发作谬误,用户将无奈判别收回的申请能否胜利。
谬误解决
状态码是4xx时,应前往谬误信息,error当作key。
{ error: "Invalid API key" }
前往后果
针对没有同操作,效劳器向用户前往的后果应该合乎如下标准
GET /collection:前往资本工具的列表(数组)
GET /collection/resource:前往单个资本工具
POST /collection:前往重生成的资本工具
PUT /collection/resource:前往完好的资本工具
PATCH /collection/resource:前往完好的资本工具
DELETE /collection/resource:前往一个空文档
{ "status": 0, "msg": "ok", "results":[ { "name":"肯德基(罗餐厅)", "location":{ "lat":31.415354, "lng":121.357339 }, "address":"月罗路2380号", "province":"上海市", "city":"上海市", "area":"宝山区", "street_id":"339ed41ae1d6dc320a5cb37c", "telephone":"(021)56761006", "detail":1, "uid":"339ed41ae1d6dc320a5cb37c" } ... ] }
Hypermedia API
RESTful API最佳做到Hypermedia,即前往后果中提供链接,连向其余API办法,使患上用户没有查文档,也晓得下一步应该做甚么。
{"link": { "rel": "collection https://www.example.com/zoos", "href": "https://api.example.com/zoos", "title": "List of zoos", "type": "application/vnd.yourformat+json" }}
更多PHP相干常识,请拜访PHP中文网!
以上就是web API接口及restful标准详解的具体内容,更多请存眷资源魔其它相干文章!
标签: php开发教程 php开发资料 php开发自学 api restful
抱歉,评论功能暂时关闭!