搞懂 API ,API 分类全知道

news/2024/11/24 12:13:06/

API,即应用程序编程接口,是为了方便应用程序之间的数据和功能交互而设计的一些标准方法。API 的分类可以从多个维度进行,我会对 API 的分类维度进行简单的介绍。

  • 根据使用方式的不同

通常情况下,API 可以分为两种使用方式:内部 API 和外部 API。

内部 API 是指供企业内部开发人员和应用所使用的 API。当企业需要一些定制化的应用程序或者集成特定的功能时,内部 API 可以提供更好的技术支持,同时也能保证数据的安全性和可靠性。

外部 API 则是供公众开发者使用的 API,通过提供数据和服务,使得外部的开发者可以构建丰富的应用程序并与当前的生态系统进行协作。越来越多的各类公司都开始向公众提供自己的 API,示例包括 Facebook、Twitter、Google 等。

  • 根据访问方式的不同

根据 API 的访问方式,API 可以分为以下几种:

a. RESTful API REST(Representational State Transfer)是一种基于 HTTP 协议的 Web 应用程序架构标准。RESTful API 遵循 RESTful 架构的原则,通常由资源路径和请求方法组成,以达到可读性高、灵活性好的目的。

b. SOAP API SOAP(Simple Object Access Protocol)是一种基于 XML 编码的远程调用协议,比较复杂而且处理时间和网络资源使用率高。虽然 SOAP 技术已经逐渐淡出市场,但在某些特殊场景下仍然会有所应用。

c. GraphQL API GraphQL 是由 Facebook 公司开源的一种数据查询语言和 API 执行引擎,可以呈现出 schema 来表达整个数据的结构,并为前端工程师提供自由定义获取所需属性、代码重用等人性化的特色。

d. gRPC API gRPC 可以理解为 Google Remote Procedure Call,是 Google 最新开源的跨语言 RPC 框架。借助基于 HTTP/2 的二进制传输协议,gRPC 提供了比 JSON 和 RESTful 更快速和更可靠的通讯方式。

  • 根据功能的不同

根据 API 的功能性质,API 可以分为以下几类:

a. Web API Web API 一般都针对 Web 应用程序,提供一些标准的接口,例如:W3C DOM 接口、HTTP 接口、WebSocket 接口、Web Worker 接口等。这些 API 帮助浏览器取得用户元素信息、发送 AJAX 请求等等。

b. 操作系统 API 操作系统 API(如 Windows API 或 POSIX API)提供了与操作系统软件交互的方法,允许应用程序查询及控制硬件设备或操作系统内核任务等。此类 API 几乎适用于任何类型的环境。

c. 数据库 API 数据库 API 可以使应用程序通过某些 API 实现对一些数据存储的操作,例如:SQL、NoSQL 等数据库里都有相关的 API 调用。

在实际使用中,API 支持访问不同的功能模块,例如数据转换、数据分析、网络安全、门户管理、日历等等,还可以根据不同的需求进行客制化的开发。

总之,在开发过程中,根据实际需求选择合适的 API 类型是非常重要的,能够快速、高效地构建需要的应用程序。

如果你日常会用到 api 管理工具的话,不妨看看我目前参与的这个开源项目,Postcat 开源的 API 管理工具,纯国产,免费的,主打插件生态,适合中小团队以及个人开发者使用,有 API 相关的核心功能。

 

目前在 Github 上 3k star,如果你觉得这个项目还不错的话,不妨点个 star 支持一下~

Github:

https://github.com/Postcatlab/postcat

Postcat 核心功能:

  • API 文档管理:可视化 API 设计,生成 API 文档

  • API 测试:自动生成测试参数,自动生成测试用例,可视化数据编辑

  • 插件拓展:众多插件扩展产品功能,打造属于你和团队的 API 开发平台

  • Mock:根据文档自动生成 Mock,或创建自定义 Mock 满足复杂场景

  • 团队协作:既能实现 API 分享也能可以创建云空间共同协作

Postcat 优势:

  • 免登录即可测试:省去繁琐的验证登录的操作

  • 界面简洁:没有冗余的功能与复杂选项

  • 免费:中小团队以及个人使用

  • 丰富的插件:支持数据迁移、主题、API 安全等高达 30 款插件

  • 国产:能更好的理解国内用户的需求,与开发团队沟通无障碍

  • 完善的用户文档:跟着操作就能快速上手

多提 Issue !多反馈!

在使用过程中有任何疑问,可以进群交流,

也可以在线提 Issue(强烈推荐这种开源的方式),提问题本身就已经在贡献社区了: https://github.com/Postcatlab/postcat/issues


http://www.ppmy.cn/news/59518.html

相关文章

为什么是三次握手和四次挥手

文章目录 为什么是三次握手为什么是四次挥手什么是TIME_WAIT状态解决TIME_WAIT状态引起的bind失败的方法 为什么是三次握手 因为这是双方都有收发的最小次数 握手的目的:确认网络好着没,对方好着没 确认双方主机是否健康(双方)…

Apollo 7.0——percception:rader源码剖析

入口 该模块的启动是通过融合模块的dag文件而启动的,在Apollo/modules/perception/production/launch中,并没有单独启动radar的launch文件或者单独启动的dag文件。其具体路径为:Apollo/modules/perception/production/dag/dag_streaming_per…

多城市门店店铺展示地图导航pc/h5系统开发

多城市门店店铺展示地图导航pc/h5系统开发 系统设置: 网站标题、网站副标题、Logo图、网站背景图、网站底部图、网站底部版权、网站ICP备案、腾讯地图Key。 店铺列表: 店铺名称、店铺图标、设备、电话、省市区、详细地址。 添加店铺: 店铺…

什么是存储程序(学废版)

目录 存储过程 一、无参存储过程: 1、无参存储过程的创建: 2、存储过程的调用call 3、查看存储过程的基本信息 4、存储过程的删除 5、存储过程的修改 二、带参存储过程 1、调用带参存储过程 2、带参存储过程的使用 3、运用带参存储过程查询数据…

代码随想录算法训练营第四十九天 |动态规划 part10

121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔…

HTML购物车示例(勾选、删除、添加和结算功能)

以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID。 以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID以下…

​Prometheus集群编队开发套件升级上市

Prometheus集群编队开发套件是一个面向集群、多智能体相关研究方向的无人机二次开发平台,采用分布式集群算法。与传统无人机集群相比,分布式无人机集群更加灵活、可靠和高效,可应用于更加复杂及多样化的任务场景。 分布式集群科研平台&#x…

重新理解快速排序

QuickSort QuickSort 版本一 依据 QuickSort版本一其实是依据 ‘荷兰国旗问题 实现的。只不过这次划分时只有大于或者小于num的数。 思路 取数组最右的数作为num,划分为两个区域(大于、小于) 在两个区域里重复第一部操作 QuickSort 版本二 依据 QuickSort版…