什么是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.baidu.com/delete-user
特别的接口能够涌现动词,由于这些接口平常没有一个明白的资本,或是动词就是接口的中心寄义
https://api.baidu.com/place/search https://api.baidu.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相干学问,请接见ki4网!
以上就是web API接口及restful范例详解的细致内容,更多请关注ki4网别的相干文章!