web API接口及restful规范详解-php教程

资源魔 32 0

甚么是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

抱歉,评论功能暂时关闭!