怀化网站建设有哪些,有哪些网站做电子元器件比较好,重庆网站排名优化,网站响应式与电脑版有什么区别编写api
自从Roy Fielding博士在2000年他的博士论文中提出#xff08;Representational State Transfer#xff09;风格的软件架构模式后#xff0c;REST就基本上迅速取代了复杂而笨重的SOAP#xff0c;成为Web API的标准了。
什么是Web API呢#xff1f;
1. Web API 和…编写api
自从Roy Fielding博士在2000年他的博士论文中提出Representational State Transfer风格的软件架构模式后REST就基本上迅速取代了复杂而笨重的SOAP成为Web API的标准了。
什么是Web API呢
1. Web API 和 API 的区别
1.1 API的概念
APIApplication Programming Interface应用程序编程接口是一些预先定义的函数目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力而又无需访问源码无需理解其内部工作机制细节只需直接调用使用即可。 举例解释什么是API。 例如 C语言中有一个函数 fopen()可以打开硬盘上的文件这个函数对于我们来说就是一个C语言提供的打开文件的工具。 javascript中有一个函数alert()可以在页面弹一个提示框这个函数就是js提供的一个弹框工具。 这些工具函数由编程语言提供内部的实现已经封装好了我们只要学会灵活的使用这些工具即可。 1.2 Web API的概念
Web API 是浏览器提供的一套操作浏览器功能和页面元素的 API ( BOM 和 DOM )。
现阶段我们主要针对于浏览器讲解常用的 API , 主要针对浏览器做交互效果。比如我们想要浏览器弹出一个警示框 直接使用 alert(‘弹出’)
因为 Web API 很多所以我们将这个阶段称为 Web APIs。
此处的 Web API 特指浏览器提供的一系列API(很多函数或对象方法)即操作网页的一系列工具。例如操作html标签、操作页面地址的方法。
1.3 API 和 Web API 总结
API 是为我们程序员提供的一个接口(taobao平台API接口调用帮助我们实现某种功能我们会使用就可以了不必纠结内部如何实现Web API 主要是针对于浏览器提供的接口主要针对于浏览器做交互效果。Web API 一般都有输入和输出函数的传参和返回值Web API 很多都是方法函数学习 Web API 可以结合前面学习内置对象方法的思路学习
如果我们想要获取一篇Blog输入http://localhost:9000/blog/123就可以看到id为123的Blog页面但这个结果是HTML页面它同时混合包含了Blog的数据和Blog的展示两个部分。对于用户来说阅读起来没有问题但是如果机器读取就很难从HTML中解析出Blog的数据。
如果一个URL返回的不是HTML而是机器能直接解析的数据这个URL就可以看成是一个Web API。比如读取http://localhost:9000/api/blogs/123如果能直接返回Blog的数据那么机器就可以直接读取。
REST就是一种设计API的模式。最常用的数据格式是JSON。由于JSON能直接被JavaScript读取所以以JSON格式编写的REST风格的API具有简单、易读、易用的特点。
编写API有什么好处呢由于API就是把Web App的功能全部封装了所以通过API操作数据可以极大地把前端和后端的代码隔离使得后端代码易于测试前端代码编写更简单。
一个API也是一个URL的处理函数我们希望能直接通过一个api来把函数变成JSON格式的REST API这样获取注册用户可以用一个API实现如下
get(/api/users)
def api_get_users(*, page1):page_index get_page_index(page)num yield from User.findNumber(count(id))p Page(num, page_index)if num 0:return dict(pagep, users())users yield from User.findAll(orderBycreated_at desc, limit(p.offset, p.limit))for u in users:u.passwd ******return dict(pagep, usersusers)
只要返回一个dict后续的response这个middleware就可以把结果序列化为JSON并返回。
我们需要对Error进行处理因此定义一个APIError这种Error是指API调用时发生了逻辑错误比如用户不存在其他的Error视为Bug返回的错误代码为internalerror。
客户端调用API时必须通过错误代码来区分API调用是否成功。错误代码是用来告诉调用者出错的原因。很多API用一个整数表示错误码这种方式很难维护错误码客户端拿到错误码还需要查表得知错误信息。更好的方式是用字符串表示错误代码不需要看文档也能猜到错误原因。