什么是接口定义? 接口定义的概念和用途详解
很多人会谈论接口或者 API 的定义。到底什么是接口定义?如何阅读接口定义?
一、前端和后端
在谈论接口之前,让我们先明确前端和后端这两个概念。
前端是我们在网页或移动应用程序中看到的页面,它由 HTML 和 CSS 编写而成,让我们看到漂亮的页面,并进行一些简单的校验,例如确保必填字段不为空。后端则实现了页面上的业务逻辑和功能,例如购物和发布微博等功能。当你在页面上进行这些操作时,后端会负责扣除余额或将微博发布到指定的账户。那么前端和后端如何交互呢?这就是通过接口完成的。
虽然这些概念可能有点抽象,但你只需要记住:前端负责让页面看起来漂亮,后端负责实现网页的功能。
无论是网页还是安卓/iOS 客户端,或者是微信小程序,或者是 Windows/Mac 上的软件,都是同一个道理,都会区分前端和后端。前端就是在你的手机或者电脑上运行的那个软件,后端则是在服务器上运行的那个软件。
在公司里,前端和后端往往会分成不同的职位,他们开发和实现的东西也截然不同。
二、接口
了解了前端和后端的概念,接下来就到接口了。
接口是一种通信机制,用于在前端和后端之间交换信息。可以将其想象为两个人之间在对话。
前端就像提问者,而后端则像回答者。当前端需要某些信息或执行某些任务时,它会通过一个接口向后端发送请求。这个请求就像是一个问题,告诉后端需要做什么。后端则会根据请求执行相应的操作,并将结果返回给前端。这个结果就像是答案,告诉前端完成了什么任务或提供了哪些信息。
这种交互就像一个问答游戏,前端和后端通过接口不断地问答,从而实现应用程序的功能和数据交换。例如,当你在购物网站上点击“加入购物车”按钮时,前端会向后端发送一个请求,告诉它要将该商品添加到购物车中。后端将执行相应的操作,并将结果返回给前端,告诉它是否成功添加了商品。
总之,接口就像是前端和后端之间的“对话”,用于交换信息和执行任务。
接口又叫 API(Application Programming Interface)。我们一般讲到接口或者 API,指的都是同一个东西。
三、接口定义
每个服务器都会提供不同的接口。比如,麦当劳的点餐服务一定会提供以下几个接口:
查看菜单
下单
查询我的订单
你打开麦当劳的小程序时,小程序就会发起一个请求“查看菜单”,服务器会返回一个菜单数据,显示在你的手机上。你选好餐,点击“下单”的时候,就会发起一个下单请求,服务器就会返回“下单成功”。你在小程序点击“我的订单”的时候,也会发起一个查询订单的请求,服务器就会返回你的订单列表。
以“下单”为例,下单肯定要包含消费者的信息,以及消费者点了什么餐。所以,小程序发起的下单请求就必须包含这些信息,否则就会下单不成功。同样的道理,服务器返回的成功下单的详情也必须包含这些信息,否则在小程序里就会显示不完整。
也就是说,开发工程师在写小程序和服务端的代码的时候,就已经规定好了信息交换的格式。客户端请求必须包含什么信息,服务端返回必须包含什么信息。这个规定就是接口定义。
而每个服务都会包含很多种不同的接口,比如上面提到的三种接口,它们都会各自有一套请求信息和返回信息的规定。
所以,接口定义就是软件开发时,对于前端如何请求信息,后端如何返回信息的结构的规定。前后端都遵循相同的接口定义,使得不同的模块之间可以互相协作,实现复杂的功能,同时保证系统的稳定和可靠性。
四、接口定义的组成
一个接口的定义主要包含以下几个部分:
接口名称:即接口的名称或标识符,用于区分不同的接口。
接口方法:即接口所提供的方法,包括 GET、POST、PUT、DELETE 等。
接口地址:即接口的访问地址。
请求参数:即接口所需要的输入参数,包括参数名称、参数类型、参数说明等。
响应参数:即接口所返回的输出结果,包括返回值的类型、名称、说明等。
一个典型的接口定义是这样的:
这个接口是在Apifox 里定义的。使用 Apifox 可以方便地进行可视化的 API 定义、开发、调试、测试。
五、阅读主流厂商的 API 定义
对 API 定义有了基本的了解之后,你可以阅读主流大厂的 API 定义来加深对于 API 定义的理解。
在 Apifox 的 API Hub 提供了各家公司的开发 API,点击访问:https://apifox.com/apihub/
例如,以下这个就是企业微信的 API 定义。
知识扩展:
如果你想了解更多接口相关的使用技巧,可以查看以下文章:
评论