名词百科
什么是 API / 接口?
一句话定义
API(Application Programming Interface,应用程序编程接口)是系统之间约定好的调用方式:调用方按约定传入参数,服务方返回结果。它是软件之间协作的接口。
它到底是什么
API 的本质是契约:只要契约不变,双方内部怎么实现都可以改。因此好的 API 设计关注的是稳定性与可理解性,而不是实现技巧。
它的形态不止一种:HTTP 接口(最常见)、函数调用(同一进程内)、消息队列(异步)、数据库连接(不推荐跨系统用)。选择取决于是否同步、是否跨网络、是否需要解耦。
怎么运作的
请求:调用方按约定构造请求,包含路径、方法、参数、鉴权信息。
校验:服务方验证身份(是谁)、权限(能不能做)、参数(格式是否合法)。三层缺一都可能出安全问题。
处理与响应:执行业务逻辑,返回结果或错误。错误码应当能区分「参数错」「未授权」「资源不存在」「服务异常」,只返回成功与失败会让排查变难。
幂等:涉及资金与状态变更的接口应支持重复调用而不产生重复效果,通常用请求唯一号实现。
版本与文档:对外接口需要版本管理与文档,字段只增不减,破坏性变更走新版本。
容易混的几个概念
- SDK:对 API 的封装,方便调用但不改变接口契约。
- Webhook:由服务方主动推送,方向相反。
- RPC:远程过程调用,风格上更接近调本地函数。
- 接口文档:描述 API 的说明书,不是 API 本身。
常见问题
开放接口最重要的设计原则是什么?
稳定与向后兼容。已上线的字段不能删、语义不能改,新增字段调用方应能忽略。破坏性变更只能靠新版本,否则所有接入方会同时崩。
接口要不要做幂等?
涉及下单、支付、退款、状态变更的必须做。网络超时后调用方会重试,没有幂等就会重复扣款或重复发货。
E 后端架构 · 同组词条
前端前端是用户直接看到并操作的界面部分,运行在浏览器或客户端中;后端是运行在服务器上的业务逻辑与数据存取部分。两者通过接口通信。RESTfulRESTful 是一种以资源为中心的接口设计风格,用 HTTP 方法与状态码表达操作;GraphQL 是一种查询语言,由客户端声明需要哪些字段,服务端一次返回。数据库数据库是结构化存储与管理数据的系统。MySQL 是关系型数据库,用表与行组织数据、支持事务;Redis 是键值型内存数据库,常用于缓存、计数与队列。缓存缓存是把访问频繁的数据临时存放在更快的存储介质中,以减少对慢速数据源的访问。常见位置有浏览器、CDN、应用内存、Redis。消息队列消息队列是用于在系统之间异步传递消息的中间件:生产者发送消息,消费者按自己的节奏处理。它解决的是解耦、削峰与异步三个问题。微服务微服务架构是把一个应用拆成多个独立部署、独立运行的小服务,各自负责一块业务能力,通过接口或消息通信。每个服务可单独开发、发布和扩容。业务中台业务中台是把多个业务线共用的能力(用户、商品、订单、支付、营销)抽取成统一服务,供各业务线调用的架构思路。它强调的是能力复用,而不是技术统一。多租户多租户架构是一套系统同时服务多个客户(租户),各租户的数据相互隔离、配置互不影响。它是 SaaS 能把成本压低的根本原因。