百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> web API接口及restful标准详解
分享文章到:

web API接口及restful标准详解

发布时间:09/01 来源:未知 浏览: 关键词:

什么是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相关知识,请拜访PHP中文网!

以上就是web API接口及restful标准详解的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有164人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板