余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

web API接口及restful规范详解(web api restful)

xiyangw 2022-11-25 12:12 20 浏览 0 评论

什么是web API接口?

明确了请求方式,提供对应后台所需参数,请求url链接可以得到后台的响应数据

web API接口及restful规范详解(web api restful)

请求方式: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"

}}

相关推荐

JavaScript基础知识及写法(javascript 菜鸟教程)
JavaScript基础知识及写法(javascript 菜鸟教程)

JavaScript基础概念JS的组成:1.ECMAScript:Js语法2.DOM:文档对象模型,文档:html文档,操作html文档(操作html文...

2023-03-21 18:34 xiyangw

海口达内:初学者学JavaScript 5个小技巧,实用
海口达内:初学者学JavaScript 5个小技巧,实用

我们都知道JavaScript因为与绝大多数浏览器都兼容,可以在这些浏览器中使用它。又因为JavaScript的简单,所以使用范围相当广泛。许多程序员过去常常认...

2023-03-21 18:33 xiyangw

一本涵盖Web前后端全栈开发的JavaScript入门教程
一本涵盖Web前后端全栈开发的JavaScript入门教程

在如今种类众多的编程语言中,JavaScript是一个非常特殊的存在。如果从语言设计的角度来分析,JavaScript应该被归类为基于原型的、解释型的高级编程语...

2023-03-21 18:32 xiyangw

JavaScript 简单使用,从入门开始(javascript可直接在电脑上使用)
JavaScript 简单使用,从入门开始(javascript可直接在电脑上使用)

HTML中的脚本必须位于<script>与</script>标签之间。脚本可被放置在HTML页面的<body>...

2023-03-21 18:32 xiyangw

初学者怎样学习 JS 更有效?六个方法供你参考
初学者怎样学习 JS 更有效?六个方法供你参考

1024程序员节,推荐一些前端开发工程师必读书籍本文已经作者DmitriPavlutin授权翻译!当你决定学习JS是有可能是因为你想成为一个前端或后端...

2023-03-21 18:32 xiyangw

初学者必看的JavaScript 七大点!(javascript入门教程)
初学者必看的JavaScript 七大点!(javascript入门教程)

这里有一些Javascript初学者应该知道的技巧和陷阱。如果你已经是专家了,顺便温习一下。Javascript也只不过是一种编程语言。怎么可能出错嘛?1....

2023-03-21 18:31 xiyangw

JS基础入门:事件捕获与事件冒泡(事件捕获 冒泡)
JS基础入门:事件捕获与事件冒泡(事件捕获 冒泡)

JS是前端很重要的一部分内容,可以说把JS的基础打好了,你才能更好的向上发展,而且现在很多大公司初试考察的就是js基础,如果你连初试都过不了,更不用说后面的复试...

2023-03-21 18:31 xiyangw

如果我重新从零开始学Javascript,我将遵循这个路线图
如果我重新从零开始学Javascript,我将遵循这个路线图

如果我要从头开始重新启动Javascript,那么我会遵循这个路线图。值得注意的是,作为这门学科的初学者,学习者的大部分兴趣掌握在导师手中。低效的导师会很快导致...

2023-03-21 18:31 xiyangw

23条JavaScript初学者应知的最佳实践方法(唱歌技巧和发声方法初学者唱歌)
23条JavaScript初学者应知的最佳实践方法(唱歌技巧和发声方法初学者唱歌)

作者:web前端开发转发链接:https://mp.weixin.qq.com/s/VpCiBMZ5fMRNpKAASUpi7w优先使用===,而不是==Jav...

2023-03-21 18:30 xiyangw

给JavaScript初学者的23条最佳实践(javascript环境配置)
给JavaScript初学者的23条最佳实践(javascript环境配置)

1.使用===代替==JavaScript使用2种不同的等值运算符:===!==和==!=,在比较操作中使用前者是最佳实践。“如果两边的操作数具有相...

2023-03-21 18:30 xiyangw

JavaScript入门学习教程(javascript零基础入门)
JavaScript入门学习教程(javascript零基础入门)

初识JavaScript(JS)1.JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。2.JavaScript通常用来操作HTML...

2023-03-21 18:30 xiyangw

javaScript入门知识点(javascript入门经典)
javaScript入门知识点(javascript入门经典)

如何在一个网站或者一个页面中去书写你的js代码:1.js的分层(功能):jquery(tool)组件(ui)应用(app),mvc(backboneJs)2...

2023-03-21 18:29 xiyangw

javascript基础入门学习第一篇(javascript基础入门书籍)
javascript基础入门学习第一篇(javascript基础入门书籍)

今天主要讲述js,在讲述今天的编程知识之前,我们要对C++做一个说明因为一些原因C的知识不做更新了,下面将讲述js的编程知识,首先需要了解的是js是一个脚本语言...

2023-03-21 18:29 xiyangw

Web前端:适合初学者的最佳 JavaScript 项目(普拉提和瑜伽哪个适合初学者)
Web前端:适合初学者的最佳 JavaScript 项目(普拉提和瑜伽哪个适合初学者)

  学习JavaScript或任何其他编程语言的关键需要投入大量时间和精力来开发大量项目,这里有一些最佳JavaScript项目。  1.计算器  这...

2023-03-21 18:28 xiyangw

js快速入门——常用的操作符总结(js ??操作符)

操作符一、递增和递减++--规则:操作数基本数据类型时,转数字后进行运算,转数字失败报NaN操作数引用数据类型时,通过原型链调用toStringvalueOf进行转换后运算,转数字失败报NaN...

取消回复欢迎 发表评论: