每个开发人员对API
这词应该都挺熟悉的,API
是软件系统之间或不同组成部分之间进行连接的约定。特别是移动应用程序和微服务架构的不断普及,API
就是他们成功背后的功臣,这个时候如何设计和开发API
就显得格外重要,今天这篇文章就是一份完整的API
开发指南,介绍了在开发API
过程中的内容、工具和最佳实践。
一、API介绍
API
它的全称是Application Programming Interface
——应用程序编程接口,是一组指令、标准或要求,使软件或应用程序可以利用另一应用程序、平台或设备的功能/服务来获得更好的服务。简而言之,它可以让应用程序彼此通信。例如,当我们在使用支付宝、微信APP时,都会通过API请求后台服务器上的数据,在APP上进行展示。
API
是处理数据或启动两个产品或服务之间的通信的所有应用程序的基础。它使移动应用程序或平台能够与其他应用程序或平台共享其数据,并在不涉及开发人员的情况下简化用户体验。最重要的是,API
消除了从头开始构建类似程序或平台的需求。您可以使用其他一些应用程序/平台中的现有应用程序。基于这些原因,应用程序开发人员和业务主管都将重点放在API
开发上。
在深入研究之前,先让我们看一下使您更容易理解该概念的基本术语。
二、API术语
- API Key:当一个API请求通过
Header
或参数来识别调用者时,传递到请求中的授权码就是API Key
。
- Endpoint:当一个
API
与另一个系统交互时,通信通道的两端被认为是Endpoint
。
- JSON:是用于
API
请求参数和响应主体的数据格式。
- GET:
RESTful API
的HTTP
方法,用于获取资源。
- POST:
RESTful API
的HTTP
方法,用于创建资源。
- OAuth:它基本上是一个开放标准的授权框架,可以在不直接共享凭据的情况下从客户端进行访问。
- REST:
REST
(代表性状态转移)是一种编程体系结构的实现,用于提供两个设备/系统之间的通信效率。它是一个轻量级的,他是通过数据引用而不是数据副本的方式来共享数据,基于这个架构创建的系统称为“RESTful
”系统,而RESTful
系统中最著名的例子就是万维网。
- SOAP:
SOAP
或简单对象访问协议是一种消息协议,用于在计算机网络中执行Web
服务时共享结构化信息。它与XML
信息集和应用程序层协议(如HTTP
和SMTP
)一起使用,分别用于消息格式和消息协商与传输。
- 延迟:延迟定义为
API
从请求到响应的过程中所花费的总时间。
- 速率限制:
API
速率限制是指定义最终用户可以访问API
的速率的过程。也就是说限制用户每次可以向API
发送的请求数。
- API限流:调节用户在特定时间段内使用
API
的过程称为限流。这可以用于API
限制,比如,设置每天限制1000个API
请求,当用户点击1001个请求时,服务器会返回429
的HTTP
状态码,并带着“请求太多”的消息。
三、API的工作流程
假如打开一些旅游应用程序/网站来预订航班,再填写了表格——输入了出发和返回日期,城市,航班以及其他相关详细信息——并提交了。只需几秒钟,屏幕上就会显示航班清单以及价格,时间,座位可用性以及其他详细信息。
为了提供这样严格的数据,该平台向航空公司的网站发送了请求,以访问其数据库并通过API
获取相关数据。网站以API
形式传递给平台数据作为响应,平台将其显示在屏幕上,基本的过程如下:
在此,航班预订应用程序/平台和航空公司的网站充当端点(EndPoint
),而API
充当简化数据共享过程的中介。在谈论端点通信时,API
有两种形式,即REST
和SOAP
。尽管这两种方法都能带来有效的结果,但目前移动应用开发程序更喜欢使用REST
而不是SOAP
,因为SOAP API
繁重且依赖于平台。
下面就介绍一下如何开发API?选择哪些工具和技术?
四、开发API的工具
在开发API
的过程中有许多工具和技术可以使用,下面介绍几个用于为开发人员开发API的流行工具:
- Apigee:它是
Google
的API
管理工具,通过重新建立API
方法来帮助开发人员和企业家在数字化转型方面取得成功。
- APIMatic and API Transformer:提供了复杂的自动生成工具,通过
API
特定格式构建高质量的SDK
和代码片段,并将其转换为其他规范的形式,如RAML
,API Blueprint
等等。
- API Science:该工具主要用于评估内部
API
和外部API的性能。
- API Serverless Architecture:该产品借助云的服务器基础架构协助移动应用程序开发人员设计、构建、发布和托管API。
- API Platform:这是一个适用于
Web API
开发的开源PHP
框架。
- OAuth2:这是一种用于身份验证和授权
API
的身份管理解决方案。
- ClearBlade:这是一个
API
管理程序,用于将IOT
技术融入流程中。
- GitHub:这是一个开源的
Git
存储库,用来托管代码服务,可以提交代码、发布请求,版本控制。还可以将代码保存在私有存储库中。
- Postman:这是一个
API
工具链,使开发人员能够运行、测试、记录和评估其API
的性能。
五、高效API的特性
- 修改时间戳/按条件搜索:
API
应该允许用户根据不同的条件(例如日期)搜索数据,并能对检索的数据进行修改(更新,编辑和删除),并能记录修改的时间戳。
- 分页:当数据量很大的时候,我们不希望每次都获取完整的数据列表。在这种情况下,
API
应该能够确定一次显示多少数据以及总页数,还应告知最终用户剩余的数据页数。
- 排序:
API
应授权用户根据修改时间或其他条件对数据进行排序。
- JSON支持/ REST:尽量使用
RESTful
风格进行有效的API
开发。REST API
是无状态的,轻量级的。此外,JSON
的语法类似于大多数编程语言的语法,这使移动应用程序开发人员可以轻松地将其解析为任何其他语言。
- 通过OAuth进行授权:由于
API
需要对外暴露,因此还需要通过OAuth
进行授权-您只需单击一个按钮即可完成。
六、构建API的最佳实践
- 流量限制:流量限制是考虑流量溢出,并保护其免受
Dos攻击
的一种好习惯。
- 将API网关视为增强点:在设置限制规则、
API
秘钥和OAuth
的应用时,必须将API
网关视为最佳实施点。只有正确的、合法的用户才能访问后面的数据,并能在网关这里加密消息或编辑私密消息,从而分析和管理API
。
- 允许覆盖HTTP方法:由于某些代理仅支持
GET
和POST
方法,因此需要让RESTful API
覆盖HTTP
方法,可以使用自动以HTTP
头X-HTTP-Method-Override
。
- 评估API和基础结构:当前,实时分析是可以实现的,但是如果
API
服务器存在内存泄漏、CPU
耗尽或其他问题该怎么办?考虑到这种情况,可以使用一些工具来对API
进行评估和排查。
- 文档:为
API
编写文档,可以使用OpenAPI
的规范的格式,这样其他应用程序开发人员可以轻松的了解整个过程并利用这些信息来提供更好的用户体验。总之,良好的API
文档可以减少项目实施的时间,提供API
开发的效率。
以上就是一份关于API开发的指南文档了,希望对大家有所帮助。想了解更多的话,可以看一下相关文档
io.js API 中文文档:https://www.w3cschool.cn/fkcaso/
Fetch API官方文档:https://www.w3cschool.cn/fetch_api/
文章参考来源:appinventiv.com/blog/complete-guide-to-api-development/