API 扫盲贴,8分钟快速搞懂 API 框架

news2024/11/24 22:24:58

API(应用程序编程接口)是一种传递信息和指令的工具,它通过不同的功能和协议等手段,允许不同的软件或系统之间进行通信和交互。作为程序员或开发人员,API 是你日常工作中必不可少的组成部分。在本文中,我们将深入探讨 API 的定义、种类和主要功能,帮助新手们快速熟悉 API 行业。

什么是 API?

API 可使不同的软件元素互相沟通。当我们打开浏览器并搜索一个网页时,背后涉及到请求和响应的互动以获取数据。API 提供了一种抽象层,使得不同系统之间的交互变得更加简便。通过调用 API 函数,我们可以实现相应功能的访问、操作和共享。

API的种类

目前,有三种常见的 API 类型:RPC,REST 和 GraphQL。

  1. RPC

RPC (远程过程调用) 是最古老最常用的 API 系统之一。它基本上是一种需要程序员使用特定代码的方式来调用和处理另一个程序库,类似于本地函数调用。 进行 RPC 调用时,我们需要参数列表和单个返回结果,这些与函数类似。RPC 非常适合传递简单数据,因此如今的 RPC 系统主要在网络游戏、电信和管理系统中使用。

  1. REST

REST (Representational State Transfer) 是许多 Web 应用程序使用的一种 API。REST API 基于互联网标准化协议 HTTP(HyperText Transfer Protocol),该协议定义了对服务进行请求和响应所需的交互方式。REST 实际上是针对 Web 服务器编码风格的一个约定,并为 Web 应用程序提供了可扩展性和安全性。常见的 REST 资源类型是 Web 服务中的 URL,以及使用 GET、POST、PUT 和 DELETE 等例行公事处理资源。 REST 让开发人员通过输入 URL,即可查询无数公共 API 数据库,例如 Twitter 和 Facebook 提供的 API 查询。

  1. GraphQL

GraphQL 是最新兴的 API 系统之一,并以其强大灵活构建方式受到开发人员的青睐。GraphQL 由 Facebook 提出,它的设计更为灵活,使用时只需要声明需要哪些资源、数据和条件即可。GraphQL 可以快速获取大量不同 API 上的数据项,减少了对 REST 多次请求所引起的效率问题。简而言之,GraphQL 的灵活性使得我们可以根据按需获取特定 API 中的内容,有如自定义 API。

API的主要功能

API 具有以下六种主要功能:数据传输、访问功能、集成服务、自动化、授权和身份验证以及提供分析和监测功能。

  1. 数据传输:

数据传输是API的主要功能之一。API提供一种简便的方法来往不同的应用程序之间传递和共享数据。 API可以用作数据输入/输出 (I/O)通道,可传输文件、文本、图像和视频等不同类型的数据。

  1. 访问功能:

通过调用API,可以获得另一个系统或应用程序的某些功能,如获取天气数据、查询地图位置等。 还有其他像 Google Maps 的API,它可以向开发人员展示地图并使用特定的导航、标注和信息。 API 提供了许多对外部功能的链接方法,这为 DevOps 现代技术下的互操作性带来了新的空间。

  1. 集成服务:

API可以与其他平台或服务集成,从而扩大应用程序的功能和覆盖面。API通过围绕特定协议、格式和代码库进行设计,使不同平台之间的交互更顺畅、无缝,并将它们彼此连接起来。例如,许多现代网站和应用程序都使用 Stripe,Paypal和其他 API 进行安全和可靠地支付和交接。

  1. 自动化:

API 可以使用自动化机制完成各种操作。例如,API 可以处理应用程序中的缩略图,搜索内容,快速响应客户请求,API还可在系统崩溃时自动通知开发者,并采取适当的措施,以确保代码更新和数据安全。因此,API 可以让开发者实现更高效和自动化的应用程序管理,从而减少日常工作中的重复性任务。

  1. 授权和身份验证:

API 还可以验证用户的身份和权限。身份验证是指确认用户是否为其声称的身份,而访问控制则是保护系统资源免受未经授权的用户访问。 例如,如果开发人员正在创建一个使用 Facebook 登录的应用程序,可以使用Facebook API来验证用户的登录凭据。这确保了只有授权用户才能访问受保护的资源,保证数据安全性,避免了非法攻击。

  1. 提供分析和监测功能:

API 可以跟踪应用程序和用户行为,并生成分析数据,以便应用程序运营者进行优化和改进。这些分析数据可以提供关于应用程序使用情况的详细信息,如用户兴趣、使用偏好和行为。API提供整合和交互,可从其他业务流程、端到端监控中进行自动化管理,为应用程序提供更多功能。

  1. 创建 SDK 或库:

API 可以创建与开发者相关的 SDK 或库,简化代码开发,加速产品上市。许多公司都拥有自己的 API 库,以便开发人员以一致的方式使用公共数据和功能。这些库可以节省时间和精力,让开发人员聚焦于业务逻辑实现。

总之,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 安全等高达 25 款插件

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

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

多提 Issue !多反馈!

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/472288.html

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

相关文章

【人脸检测】——Sample and Computation Redistribution for Efficient Face Detection论文简读

人脸检测 摘要 在非受控人脸检测方面已经取得了巨大的进步,但低计算成本和高精度的高效人脸检测仍然是一个开放的挑战。作者提出了两种简单而有效的方法:样本再分配(SR)和计算再分配(CR)。在WIDER FACE上进…

H7-TOOL的CANFD Trace全解析功能制作完成,历时一个月(2023-04-28)

为了完成这个功能,差不多耗费了一个月时间,精神状态基本已经被磨平了。 当前已经支持: 1、LUA小程序控制,使用灵活。 2、采用SWD接口直接访问目标板芯片的CANFD外设寄存器和CANFD RAM区实现,支持USB,以太网…

docker登录harbor、K8s拉取镜像报http: server gave HTTP response to HTTPS client

docker登录harbor、K8s拉取镜像报http: server gave HTTP response to HTTPS client 当搭建完docker私有仓库后,准备docker login http://ip:端口 登录时会包如下错误 当我们使用docker私有仓库中的镜像在K8s集群中部署应用时会包如下错误 以上错误根据报错信息可…

执行增删改查时获取SQL语句

查询为例 查询方法由SqlSessionTemplate中创建DefaultSqlSession,然后执行DefaultSqlSession的selectList方法。 然后继续执行查询方法 执行executor.query方法,executor为CachingExecutor类型。 如果引入了pagehelper依赖,这里执行前会进…

【Android -- 开源库】数据库 Realm 的基本使用

简介 Realm 是一个 MVCC (多版本并发控制)数据库,由Y Combinator公司在2014年7月发布一款支持运行在手机、平板和可穿戴设备上的嵌入式数据库,目标是取代 SQLite。Realm 本质上是一个嵌入式数据库,他并不是基于 SQLit…

论文笔记:Model-ContrastiveFederatedLearning

0 简介 论文:Model-ContrastiveFederatedLearning 代码:https://github.com/QinbinLi/MOON 相关链接:本文主要是将SimCLR对比学习的思想迁移到联邦学习中,关于SimCLR的介绍见https://blog.csdn.net/search_129_hr/article/detail…

云计算主要学些什么技术内容?零基础能学会吗?

云计算主要学些什么技术内容?零基础能学会吗? 随着信息技术的不断发展,云计算作为一种新兴的技术,在当今社会中起到了越来越重要的作用,尤其是在数字化发展领域,不管是传统企业还是新经济领域,人…

Arthas--ognl表达式

背景 arthas执行ognl表达式,获取对应的jvm对象数据。ognl学习,可以查看上篇:https://xiaopanjia.blog.csdn.net/article/details/130425414 基本语法 ognl express -c {hashCode} --classLoaderClass {当前的全路径 ClassLoader 信息} -x …

windbg查看64位dump文件踩过的坑:没有二进制文件导致堆栈异常

项目上线了64位的软件,发现dump解析时堆栈不全,很多奇怪的地址: 64位只有pdb,没有二进制文件: 64位有pdb,也有二进制文件: 64位的这个问题把二进制文档和pdb放在一起就正常了。32位的发现没有…

不停机修复mysql主从数据同步错误导致服务器磁盘占满问题

事情的现象: 线上生产环境mysql服务器采用主从结构。突然告警从库服务器磁盘占用高。经过磁盘空间检查,主要是/mysql/data目录使用100%(直接占满了),进入目录后发现被文件slave-relay-bin.*系列文件占满了。常理数据不…

28.Mybatis的入门

目录 一、Mybatis。 (1)Mybatis的简介。 (2)Mybatis的快速入门。 (2.1)快速入门。 (2.2)UserMapper.xml文件。 (2.3)sqlMapConfig.xml文件。 &#…

基于DSP+FPGA+ADS1282支持32Bit高精度数据采集方案(一)

3.1 系统需求分析 3.1.1 系统功能设计要求 本硬件处理平台的主要任务有三类,一是数据采集,包括采集惯性测量元件 的输出信号,接收外部系统校正信息,如 GPS 信息等;二是数据处理与计算,包 括惯性测量…

分享一个CSS的垂帘效果

先上效果图&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>html, body, canvas {-webkit-user-select: none;-moz-user-select…

[JAVA]前后端分离智慧校园电子班牌系统源码微信带小程序

1. 开发语言&#xff1a;JAVA 2. 数据库&#xff1a;MySQL 3. 后端框架&#xff1a;Spring boot 4. 前端框架&#xff1a;VUE2 5. 电子班牌&#xff1a; Android 7.1 6. 小程序&#xff1a;原生语言开发 7. 多学校Saas 模式 在大数据平台下&#xff0c;对应用系统进行统…

研报精选230428

目录 【行业230428华安证券】环保行业框架分析 【个股230428华西证券_视源股份】收入表现优于行业&#xff0c;平板盈利提升 【个股230428中银证券_长海股份】23Q1业绩承压&#xff0c;行业库存、出口现好转信号 【个股230428国信证券_星宇股份】一季度归母净利润环比增长9%&am…

Web3 游戏全景图:各类玩家群像解读

作者&#xff1a;lesleyfootprint.network 主要观点 即使市场深陷寒冬&#xff0c;但 web3 游戏每天依然有八十万的用户。 Web3 游戏正在逐步完善&#xff0c;从 DeFi 演变出的 Web3 游戏 &#xff0c;到增强了叙事的 X2E&#xff0c;再到 AAA 游戏和元宇宙。 未来&#xff…

同为科技(TOWE)科普与雷电相关的基本知识

前 言 雷电是伴有闪电和雷鸣的放电现象&#xff0c;壮观而又有点令人生畏。雷电一般产生于对流发展旺盛的积雨云中&#xff0c;常伴有强烈的阵风和暴雨&#xff0c;有时还伴有冰雹和龙卷风。夏季雷电时有发生&#xff0c;虽然常见&#xff0c;但你真的了解雷电吗&#xff1f;这…

停车场管理系统的设计与实现_kaic

目 录 1 概 述 1.1研究背景 1.2研究现状 1.3研究内容 2 相关技术简介 2.1 JSP技术 2.2 JAVA技术 2.3 MYSQL数据库 2.4 B/S结构 3 系统需求分析 3.1 系统可行性分析 3.1.1 操作可行性 3.1.2 经济可行性 3.1.3 技术可行性 3.2 系统性能分析 3.3系统流程分析 3.3.1注册流程 3.3.…

关于Prompt Engineering你该了解啥?OpenAI应用研究负责人帮你梳理了

‍来源 | 机器之心 微信号&#xff1a;almosthuman2014 随着 ChatGPT、GPT-4 等模型的兴起&#xff0c;人们对如何创建提示以获得想要的输出越来越感兴趣。研究者对特定提示的响应可能很难预测&#xff0c;并且会因模型的不同而不同。本文来自 OpenAI 的翁丽莲&#xff08;Lili…

【C语言】深度剖析数据在内存中的存储

简单不先于复杂&#xff0c;而是在复杂之后。 目录 1. 数据类型介绍 1.1 类型的基本归类 2.整型在内存中的存储 2.1 原码、反码、补码 2.2 大小端介绍 2.3 练习 2.3.1 练习1 2.3.2 练习2 3.2.3 练习3 2.3.4 练习4 2.3.5 练习5 2.3.6 练习6 2.3.7 练习7 …