搞懂 API ,API 分类全知道

news2024/11/20 21:20:20

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.coloradmin.cn/o/491659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】1143. 最长公共子序列

1.问题 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff0…

Springboot 项目搭建

目录 一、new project 二、pom.xml 三、配置 resources/application.yml 四、CodeGenerator 代码生成 五、在项目主启动类中&#xff0c;添加MapperScan注解 六、编写 Controller 七、选择application类&#xff0c; 点击运行 一、new project: 二、pom.xml <?xml …

如何升级npm 和 安装nvm 及 升级node.js

1.NPM如何升级&#xff1f; 1.1.可以使用NPM自带的命令进行升级&#xff1a; npm install -g npm 注&#xff1a;这个命令会安装最新的&#xff0c;安装到全局。 2.查看NPM版本 npm -v 注&#xff1a;要是版本过低&#xff0c;可使用上面所说命令进行升级。 3.怎么把node.js升…

二级医院不良事件管理源码,事件审核处理、事件提醒、权限控制、外部上报等功能

医疗安全不良事件报告系统源码 技术架构&#xff1a;前后端分离&#xff0c;仓储模式 开发语言&#xff1a;PHP 开发工具&#xff1a;vscode 前端框架&#xff1a;vue2element 后端框架&#xff1a;laravel8 数 据 库&#xff1a;mysql5.7 文末获取联系&#xff01; 医疗…

供应链管理:理解供应链管理

什么是供应链 供应链便是环绕中心企业&#xff0c;从配套零件开始&#xff0c;制成中心产品直至最终产品&#xff0c;最后由出售网络把产品送到顾客手中的、将供应商&#xff0c;制造商&#xff0c;分销商直到最终用户连成一个整体的功用网链结构。 从这个角度讲&#xff0c;生…

实验9---SpringMVC控制器

实验九 SpringMVC 二 一、实验目的及任务 通过该实验&#xff0c;掌握SpringMVC实现供应商添加、查看、修改的方法。掌握SpringMVC控制器的编写方法。 二、实验环境及条件 主机操作系统为Win10&#xff0c;Tomcat,j2sdk1.6或以上版本。 三、实验实施步骤 略 四、实验报…

一个让人类窒息的AI工具,或许未来人工智能真的能代替人类!

时隔几周&#xff0c;「神采PromeAI」又更新了 不仅页面做了小小的调整 又增加了「背景生成」功能 害怕各位小伙伴找不到使用位置 今天小编就给大家分享一个超全的使用教程 极速出图效率翻倍 让神采PromeAI在应用性设计方面更具优势 温馨提示&#xff1a;目前手机适配端无…

接口自动化测试框架设计:数据驱动、Page Object、单例模式实战

B站首推&#xff01;2023最详细自动化测试合集&#xff0c;小白皆可掌握&#xff0c;让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 一、前言 二、设计模式 2.1 数据驱动测试模式 2.2 Page Object 模式 2.3 单例模式 三、代码实现 四、总…

小米路由器4A,(R4A千兆版)刷openwrt系统(Linux的一种)

下载系统 第一步下载自己路由器型号的系统固件&#xff0c;https://openwrt.org/toh/views/toh_fwdownload 直接在页面搜索自己路由器品牌找到区域再找到自己的型号对应的&#xff0c;然后选第一个链接是稳定版系统固件&#xff0c;下载后改名为openwrt.bin 固件备用 下载程序 …

Facebook禁止推广的产品,你知道吗?

作为全球最大的社交媒体平台之一&#xff0c;Facebook一直在努力保护广告客户和用户的权益&#xff0c;以及确保平台上的广告内容合法、道德、安全。 在本文中&#xff0c;我们将深入了解Facebook禁止推广的产品&#xff0c;以及为什么它们被禁止。ClonBrowser多账号功能可以通…

Java基础(十七)File类与IO流

1. java.io.File类的使用 1.1 概述 File类及本章下的各种流&#xff0c;都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录&#xff08;俗称文件夹&#xff09;&#xff0c;与平台无关。&#xff08;体会万事万物皆对象&#xff09;File 能新…

Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

本篇博客算是一个开头&#xff0c;接下来会持续更新使用Swift3.0开发服务端相关的博客。当然&#xff0c;我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现。Perfect框架是加拿大一个创业团队开发的&#xff0c;目前是Perfect2.0版本&#xff0c;关于Perfect框架&a…

OpenGL光照教程之 透光物

引言 我们目前使用的所有光照都来自于一个单独的光源&#xff0c;这是空间中的一个点。它的效果不错&#xff0c;但是在真实世界&#xff0c;我们有多种类型的光&#xff0c;它们每个表现都不同。一个光源把光投射到物体上&#xff0c;叫做投光。这个教程里我们讨论几种不同的投…

告别被拒,如何提升iOS审核通过率(上篇)

iOS审核一直是每款移动产品上架苹果商店时面对的一座大山&#xff0c;每次提审都像是一次漫长而又悲壮的旅行&#xff0c;经常被苹果拒之门外&#xff0c;无比煎熬。那么问题来了&#xff0c;我们有没有什么办法准确把握苹果审核准则&#xff0c;从而提升审核的通过率呢&#x…

ESP32-C2开发板简介

C2是一个芯片采用4毫米x 4毫米封装&#xff0c;与272 kB内存。它运行框架&#xff0c;例如ESP-Jumpstart和ESP造雨者&#xff0c;同时它也运行ESP-IDF。ESP-IDF是Espressif面向嵌入式物联网设备的开源实时操作系统&#xff0c;受到了全球用户的信赖。它由支持Espressif以及所有…

PtQt的使用与pycharm的结合

PtQt的使用与pycharm的结合 环境安装 pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple # 如果执行成功&#xff0c;没有任何错误提示&#xff0c;则表明环境搭建成功 from PyQt5 import QtWidgets# 当然也可以查看PyQt版本 from PyQt5.QtCore import * print…

Unity之OpenXR+XR Interaction Toolkit实现 移动和转向

一.前言 我们知道&#xff0c;在VR游戏中&#xff0c;我们除了可以通过传送来移动之外&#xff0c;还可以通过手柄的遥感进行移动&#xff0c;那么接下来&#xff0c;我们就介绍一下如果通过XR Interaction Toolkit来实现遥感控制任务移动和旋转 二.准备工作 我们需要准备好…

C. Maximum Subrectangle(思维 + 考察两个数组相乘得到的矩阵的含义)

Problem - C - Codeforces 给定两个正整数数组 a 和 b&#xff0c;长度分别为 n 和 m。 定义矩阵 c 为一个 nm 的矩阵&#xff0c;其中 ci,jai⋅bj。 你需要在矩阵 c 中找到一个子矩形&#xff0c;使得它的元素之和最多为 x&#xff0c;并且它的面积&#xff08;即元素总数&a…

考pmp有什么好处?

PMP证书报名条件要求高&#xff0c;这是众所周知的事&#xff0c;那你通过了PMP考试&#xff0c;就证明你是有一定能力的&#xff0c;重要的是&#xff0c;你已经有了至少半年的项目管理经验&#xff0c;并且在你申请考试的前六年内&#xff0c;累计项目管理达三年。 PMP有什么…

【Hadoop-Yarn】Yarn的常用命令

【Hadoop-Yarn】Yarn的常用命令 1&#xff09;查看任务列表2&#xff09;杀死任务3&#xff09;查看日志4&#xff09;根据 Application 状态过滤任务5&#xff09;查询 Container 日志6&#xff09;查看尝试运行的任务7&#xff09;yarn container 查看容器8&#xff09;yarn …