API 是 Internet 通信的主干。每个开发人员都需要了解 API。
以下是涵盖最重要主题的路线图:
- 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弄潮儿