【API】终极 API 学习路线图

news/2025/2/23 13:01:41/文章来源:https://www.cnblogs.com/o-O-oO/p/18718516

API 是 Internet 通信的主干。每个开发人员都需要了解 API。

以下是涵盖最重要主题的路线图:

  1. API 简介

API 是一组用于构建应用程序的协议和工具。存在不同类型的 API,例如 public、private 和 partner。
2. API 术语

需要了解各种 API 术语,例如 HTTP 版本、Cookie 和缓存。
3. API 样式

最常见的 API 样式是 REST、SOAP、GraphQL、gRPC 和 WebSockets
4. API 身份验证

API 身份验证技术,如基本身份验证、令牌、JWT、OAuth 和会话身份验证
5. API 文档

一个好的 API 是可以理解的。Swagger、Postman、Redoc 和 DapperDox 等 API 文档工具使之成为可能。
6. API 功能

API 的主要功能包括分页、参数、幂等性、API 版本控制、HATEOAS 和内容协商
7. API 性能技术

常见的 API 性能技术包括缓存、速率限制、负载均衡、分页、数据库索引、扩展和性能测试。
8. API 网关

了解 API 网关,例如 Amazon API Gateway、Azure API Services、Kong、Nginx 等。
9. API 实现框架

最流行的 API 开发框架是 Node.js、Spring、Flask、Django 和 FastAPI
10. API 集成模式

了解各种 API 集成模式,例如网关、事件驱动、Webhook、轮询和批处理。

如何设计有效且安全的 API?

下图显示了带有购物车示例的典型 API 设计。

代码优先与 API 优先

下图显示了代码优先开发和 API 优先开发之间的区别。

为什么我们要考虑 API 优先设计❓

微服务增加了系统复杂性。

我们有单独的服务来服务于系统的不同功能。虽然这种架构有助于解耦和职责分离,但我们需要处理服务之间的各种通信。
不同的职能团队需要说同一种语言。

专门的功能团队只负责自己的组件和服务。建议组织通过 API 设计使用相同的语言。
提高软件质量和开发人员生产力

由于我们已经消除了项目开始时的大部分不确定性,因此整体开发过程更加顺畅,软件质量也大大提高。
用简单的术语解释 Oauth 2.0

OAuth 2.0 是一个功能强大且安全的框架,它允许不同的应用程序代表用户安全地相互交互,而无需共享敏感凭据。

OAuth 中涉及的实体是用户、服务器和身份提供者 (IDP)。

OAuth 令牌有什么作用❓

使用 OAuth 时,您将获得一个代表您的身份和权限的 OAuth 令牌。此令牌可以做一些重要的事情:

单点登录 (SSO):使用 OAuth 令牌,您只需一次登录即可登录多个服务或应用程序,让生活更轻松、更安全。

跨系统授权:OAuth 令牌允许您在各种系统之间共享您的授权或访问权限,因此您不必在任何地方单独登录。

访问用户配置文件:具有 OAuth 令牌的应用程序可以访问您允许的用户配置文件的某些部分,但它们不会看到所有内容。

请记住,OAuth 2.0 旨在保护您和您的数据安全,同时让您的在线体验在不同的应用程序和服务之间无缝且轻松。

交给您:想象一下,您有一种神奇的能力,可以实现 OAuth 2.0 的一个愿望。

那会是什么?也许您的建议实际上导致了 OAuth 3。

会话、Cookie、JWT、令牌、SSO 和 OAuth 2.0 在一个图表中解释

当您登录网站时,需要管理您的身份。

以下是不同解决方案的工作原理:

会话 : 服务器存储您的身份并为浏览器提供会话 ID Cookie。这允许服务器跟踪登录状态。但是 cookie 不能在设备上正常工作。

令牌 : 您的身份被编码为发送到浏览器的令牌。浏览器在将来的身份验证请求中发送此令牌。不需要服务器会话存储。但是令牌需要加密/解密。

JWT : JSON Web 令牌使用数字签名实现信任,从而对身份令牌进行标准化。签名包含在令牌中,因此不需要服务器会话。

SSO : Single Sign On 使用中央身份验证服务。这允许单个登录在多个站点上工作。

OAuth2 : 允许一个站点对另一个站点上的数据进行有限访问,而不会泄露密码。

QR Code : 将随机令牌编码为 QR 码以进行移动登录。扫描代码无需键入密码即可登录。

https://blog.bytebytego.com/p/ep147-the-ultimate-api-learning-roadmap

BUG弄潮儿

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cs144-lab0

CS144: 计算机网络导论 2025年冬季 check0: 本次实验中大概四项任务:在电脑上安装GNU/Linux系统; 手动执行网络任务(如获取网页、发送邮件); 用C++编写一个从互联网获取网页的小程序; 实现网络的核心抽象之一:内存中的可靠字节流(在写入端和读取端之间)。1 配置GNU/L…

[ubuntu使用]安装微信

ubuntu 24.04 一段时间没用ubuntu系统了,刚换的笔记本,二手Thinkpad X1 Carborn 2018,结果装ubuntu24就是装不了,安装完成启动不了。无奈安装的ubuntu20,正常使用后,在更新的时候提示更新到ubuntu22和ubuntu24,最终也升级到最新了,不知道什么问题。 言归正传,使用的时…

2024“全球网络和软件品牌价值15强”——爱码士IT培训

2024“全球网络和软件品牌价值15强”排行榜英国品牌评估机构“品牌金融”(Brand Finance)发布2024“全球网络和软件品牌价值15强”排行榜(Internet & Software 15),微软、甲骨文、思爱普蝉联前三位。 品牌价值被理解为品牌所有者通过在公开市场上许可该品牌所获得的净经济…

第六讲 动态规划

第一题 最大子段和第二题 采药第三题 宝物筛选第四题 最长公共子序列

Nginx - [02] 安装部署

官网下载地址:http://nginx.org/en/download.html 001 || 安装[windows] 解压之后,在命令提示符窗口启动nginx.exe在浏览器访问80端口:localhost:80002 || 安装[linux] 1、下载tar包解压后执行./configure 2、执行make、make install 3、执行whereis nginx查找 4、在/usr/l…

前端实践问题

拖拽过程中,如果原本的元素消失了,onDrop还能触发么?具体表现是什么? 即使原始元素在拖拽过程中被移除了,只要拖拽操作未被中断,onDrop 事件仍然可以触发拖拽数据独立存储拖拽操作一旦开始(dragstart),浏览器会将拖拽数据存储在独立的 DataTransfer 对象中。即使原始元…

使用Dify快速搭建AI Agent智能助手应用

1 定义 智能助手(Agent Assistant),利用LLM的推理能力,自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,在无人类干预的情况下完成任务。 2 咋用智能助手? “探索”中找到Agent的应用模板,添加到工作区或在此基础自定义。在工作室也可从0编排一个Agent…

第二课 信用卡欺诈预测

目录数据预处理导包查看数据特征工程目标变量特征衍生特征选择信用卡正常消费和盗刷对比交易金额和交易次数信用卡消费时间分析交易金额和交易时间的关系特征分布(非常重要,帮助筛选特征) 数据预处理 导包 除了常规的导包,这里还有一行代码如下 pd.set_option(display.floa…

【自动化运维】AIOps的下一步走向哪里?

【摘要】本文从AIOps的演进谈起,提出了AIOps的挑战症结所在,重点分析AIOps是怎样的运维工作模式,其智能运维场景如何构建,以及大模型和AI Agent给场景带来的新思路。本文对AIOps的发展趋势有较深入的思考,值得同行学习借鉴。 【作者】彭华盛,广发证券数字化运维研发团队负…

动手学大模型应用开发,第4天:向量数据库的使用

第一章、知识库文档处理 本项目是一个个人知识库助手项目,旨在帮助用户根据个人知识库内容,回答用户问题。个人知识库应当能够支持各种类型的数据,支持用户便捷地导入导出、进行管理。在我们的项目中,我们以 Datawhale 的一些经典开源课程作为示例,设计了多种文件类型,介…