•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

web API接口及restful范例详解【php教程】,api,restful

摘要: 什么是webAPI接口?明白了要求体式格局,供应对应背景所需参数,要求url链接能够获得背景的相应数据要求体式格局:get,post,put,patch....要求参数:js...

什么是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网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号