API是什么?

都在说API,API到底是什么?

都在说API,API到底是什么?

  • API是“应用程序编程接口”(Application Programming Interface)的缩写,它是一套规则和定义,允许不同的软件应用之间相互通信。简单来说,API就像是软件间的桥梁,让一个程序能够访问另一个程序的服务、数据或功能,而无需了解其内部工作原理。正如电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来,电脑和手机上连接数据线的接口就是传说中的API接口。

    具体到实际开发场景中,假设研发人员A开发了软件A,研发人员B正在研发软件B。有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?

    研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数;你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!

    其中,API就是研发人员A说的那个函数。

什么是API First

强调在构建应用程序的开始阶段,优先做API设计,然后启动软件编码。这种模式就是将API视为应用程序的核心,所有的后续研发流程都围绕API设计契约进行。

【API First与Code First对比】

API First:API优先,优先API设计,开发、测试、部署、发布等围绕API设计契约进行。

主要优势:

•团队协作:API first促进团队协作与分工合作。

•API一致性:API全生命周期流程中的数据的一致性。

•研发成本:解决问题所花费的成本。

Code First:代码优先,优先领域模型与代码设计,最后封装API

主要优势:

•开发速度快:简单的业务开发速度更快,适合业务简单的小团队。

CodeArts API:API设计的必备神器

华为云CodeArts API是一个为开发者精心打造的API 全生命周期管理一体化协作平台,以API契约为锚点,践行“API First”理念,支持开发者高效实现 API 设计、开发、测试、托管、运维、变现的一站式体验。

而API设计作为产品的核心,更是为开发者提供了灵活的API设计体验。

支持Swagger原生编辑与可视化结构表单两种API文档设计模式

在Swagger原生模式下,接口设计遵循OpenAPI规范,开发者能够享受到专业的API规范检测功能,辅助开发者修改API设计问题。

而对于追求直观便捷操作的用户,可视化表单编辑模式则成为理想之选,开发者无需再手动编写YAML文件,转而采用互动性强的图形界面,仅需简单填选,即便是API设计新手也能迅速完成参数配置,极大地降低了技术门槛,实现零学习成本即可上手API设计。

这两种模式的并存,巧妙地满足了不同技术水平开发者的需求,让每个人都能根据自身偏好和经验水平,找到最适合自己的API设计途径。

设计API

在设计接口文档时,应针对以下要素进行设计:

接口基本信息、接口路径、请求方式、接口请求参数接、口返回响应、安全方案

接口基本信息

名称:每个接口应有一个唯一的标识符或名称,便于识别和引用。

描述:简短概述接口的功能和用途,包括它解决了什么问题或提供了哪些功能。

状态:标记接口的生命周期状态,如草稿、开发中、测试中、已上线、已废弃等。

所属目录:接口在项目中所属的目录。

接口路径

URL:完整的API调用地址,包括基础URL和资源路径,明确指出如何访问该接口。

请求方法:指定调用接口时使用的HTTP方法,如GET、POST、PUT、DELETE等。

接口请求参数

Query参数:接口请求中的一种参数传递方式,它通常用于传递一些可选的参数,比如过滤条件、排序方式、分页参数等。在URL中表现为末尾“?”后的字符串(如:“/car?owner=zhangsan”,那么“owner=zhangsan”即Query参数,其中“owner”为参数的key,“zhangsan”为参数的value)。

Path参数:也称为“路径参数”,是API请求中的一种参数传递方式。在URL中表现为大括号“{}”括起来的字符串(如:“/car/{owner}”,那么“{owner}”表示key为“owner”的Path参数)。

Header参数:请求头中的参数。

Cookies:类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

前置脚本:在请求发送前执行的代码片段。

后置脚本:在请求发送后执行的代码片段,主要用于验证请求返回的结果(断言)、将请求返回的结果数据写入环境变量等场景。

请求体:对于POST、PUT等请求,详细说明请求主体中需要的JSON或表单数据格式,包括字段名称、类型、是否必填、默认值及描述。

接口返回响应

返回响应的状态码:通过加号来添加运行接口后可能的响应状态码,单击响应状态码可以对状态码进行修改。

响应内容的数据结构:规定响应内容的格式,分为“application/json”、“application/xml”、“text/plain”三种,“application/json”和“application/xml”两种情况下可以对响应内容的结构进行进一步定义,如:响应内容为“application/json”,规定json内容里的参数类型等。

响应示例:响应内容的示例。

响应头:返回响应的Header。

安全方案

OpenAPI规范中,安全模型对应OpenAPI3.0的components.securitySchemes。大部分的Web服务都需要经过身份认证才能访问,security就是用于描述API的安全信息和访问授权协议等信息的对象,Open API支持的最常见授权方案如下:

API key

HTTP

Oauth2.0

OpenID Connect