本心、输入输出、结果
文章目录
- 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(2)
- 前言
- SOAP vs REST vs GraphQL vs RPC
- 代码优先与 API 优先
- HTTP 状态代码
- API 网关有什么作用
- 步骤说明
- 我们如何设计有效和安全的 API
- 弘扬爱国精神
系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(2)
编辑:简简单单 Online zuozuo
地址:https://blog.csdn.net/qq_15071263
前言
我们使用视觉效果和简单术语来解释复杂的系统是如何运转的,帮助我们理解技术细节
我们使用视觉效果和简单术语来解释复杂的系统是如何运转的,帮助我们理解技术细节
SOAP vs REST vs GraphQL vs RPC
展示了 SOAP vs REST vs GraphQL vs RPC 之间的对比
随着时间的推移,会发布不同的 API 架构样式。它们中的每一个都有自己的标准化数据交换模式。
您可以查看图表中每种样式的用例
代码优先与 API 优先
下图显示了代码优先开发和 API 优先开发之间的差异。为什么我们要考虑 API 优先设计
-
微服务增加了系统复杂性 我们有单独的服务来服务于系统的不同功能。虽然这种架构有助于职责的解耦和分离,但我们需要处理服务之间的各种通信。
在编写代码并仔细定义服务的边界之前,最好先考虑系统的复杂性。 -
不同的职能团队需要说同一种语言 专门的职能团队只负责自己的组件和服务。建议组织通过 API 设计使用相同的语言。
我们可以在编写代码之前模拟请求和响应以验证 API 设计。 -
提高软件质量和开发人员的工作效率 由于我们在项目开始时消除了大部分不确定性,因此整体开发过程更加顺畅,软件质量也大大提高。
开发人员也对这个过程感到高兴,因为他们可以专注于功能开发,而不是谈判突然的变化。 -
在项目生命周期结束时出现意外的可能性降低了。
因为我们首先设计了 API,所以可以在开发代码的同时设计测试。在某种程度上,在使用API优先开发时,我们也有TDD(测试驱动设计)
HTTP 状态代码
HTTP 状态代码
HTTP 的响应代码分为五类:
- 信息 (100-199)
- 成功 (200-299)
- 重定向 (300-399)
- 客户端错误 (400-499)
- 服务器错误 (500-599)
API 网关有什么作用
API 网关有什么作用,为什么我们需要 API 网关
步骤说明
步骤 1 - 客户端向 API 网关发送 HTTP 请求。
步骤 2 - API 网关解析并验证 HTTP 请求中的属性。
步骤 3 - API 网关执行允许列表/拒绝列表检查。
步骤 4 - API 网关与身份提供程序通信以进行身份验证和授权。
步骤 5 - 将速率限制规则应用于请求。如果超出限制,则拒绝请求。
步骤 6 和 7 - 现在请求已通过基本检查,API 网关通过路径匹配查找要路由到的相关服务。
步骤 8 - API 网关将请求转换为适当的协议,并将其发送到后端微服务。
步骤 9-12:API 网关可以正确处理错误,如果错误需要较长时间才能恢复(断路),则处理故障。它还可以利用ELK(Elastic-Logstash-Kibana)堆栈进行日志记录和监控。我们有时会在 API 网关中缓存数据
我们如何设计有效和安全的 API
我们如何设计有效和安全的 API?下图显示了带有购物车示例的典型 API 设计
请注意,API 设计不仅仅是 URL 路径设计。大多数情况下,我们需要选择正确的资源名称、标识符和路径模式。在 API 网关中设计适当的 HTTP 标头字段或设计有效的速率限制规则同样重要