关于API集成时需要考虑的关键问题清单,这些问题覆盖了技术、性能、安全性、支持和测试监控五个主要领域。

alt text

  1. 技术方面

    • 确定API类型(REST、SOAP、GraphQL)。
    • 确认所需的认证方法(API密钥、OAuth、JWT)。
    • 了解不同用户是否有不同级别的访问权限。
    • 确定API支持的数据格式(JSON、XML)。
    • 明确每个端点可以执行的具体操作。
    • 了解是否存在速率限制或配额。
    • 了解API如何传达错误信息,是否遵循错误消息的标准。
  2. 性能和可扩展性

    • 确定预期的响应时间。
    • 评估API是否能够处理预期的负载。
    • 探索是否存在可扩展的机制。
    • 考虑是否可以应用缓存以及合适的缓存策略。
  3. 安全考虑

    • 了解使用的加密标准。
    • 确认API是否符合行业合规标准(如GDPR、HIPAA)。
    • 了解API如何处理敏感信息。
    • 🎯API安全核心策略要记住!
      🔸 数据输出管理:控制信息流,保护隐私。
      🔸 认证:核实身份,安全第一
      🔸 入口防护:构筑防线,抵御攻击
      🔸 API网关:流量管理,保障畅通。
      🔸 输入验证:数据校验,防止破解

alt text

  1. 支持

    • 查找API文档的位置,是否有代码示例和用例。
    • 了解API提供商提供的技术支持级别,是否有服务等级协议(SLA)。
    • 了解API的版本控制策略,以及废弃旧版本的政策。
  2. 测试和监控

    • 确认是否有沙盒环境用于测试。
    • 了解日志记录机制,以及在出现问题时如何查看日志。
  3. API的类型风格

    • 🌟 『SOAP』:成熟、全面的XML基础风格,最适合企业应用。
    • 🌐 『RESTful』:流行、易于实现的HTTP方法风格,理想用于Web服务。
    • 📚 『GraphQL』:查询语言风格,请求特定数据,减少网络开销,响应更快。
    • 🚀 『gRPC』:现代、高性能的Protocol Buffers风格,适合微服务架构。
      🎯 gRPC:微服务架构中的远程通信利器
      ✅gRPC是一个高性能、开源和通用的RPC框架,由Google主导开发。
      🔸gRPC的性能通常比传统的RPC框架(如使用JSON的RESTful API)快5倍或更多。
      🔸在资源消耗方面,由于二进制格式的紧凑性,gRPC可以减少网络带宽的使用。
      🔸gRPC利用HTTP/2的特性,如头部压缩和多路复用,来优化网络通信。

alt text

  • 🔁 『WebSocket』:实时、双向、持久连接风格,完美适用于低延迟数据交换。
  • 📨 『Webhook』:事件驱动、HTTP回调、异步风格,事件发生时通知系统。

alt text

  1. API版本控制和演进过程
    • 🎯API版本控制和演进过程中要注意的事:兼容性和稳定性。
      1️⃣定义版本策略:选择URL路径、请求头或查询参数作为版本标识。
      2️⃣向后兼容:在新版本中保持对旧版本的支持。
      3️⃣渐进式变更:在同一版本内进行非破坏性变更。
      4️⃣破坏性变更的版本升级:创建新版本以引入破坏性变更。
      5️⃣版本弃用策略:制定清晰的版本弃用政策,并提前通知用户。
      6️⃣文档和示例:提供详尽的API文档和版本迁移指南。
      7️⃣监控和反馈:监控API的使用情况,收集用户反馈,并根据这些信息调整版本控制策略。

alt text

  1. 构建API需考虑的因素
    • 🈴构建API考虑的因素(不限于)
    • 🎯下面以购物车API设计为例:
      1️⃣资源命名:使用名词,如carts
      2️⃣复数形式:如GET /carts/123
      3️⃣幂等性:通过请求ID重试。
      4️⃣版本控制:通过版本号管理。
      5️⃣软删除查询:允许查询已删除资源。
      6️⃣分页:通过参数分页。
      7️⃣排序:通过参数排序。
      8️⃣过滤:通过参数过滤。
      9️⃣安全访问:使用API密钥和签名。
      🔟资源交叉引用:实现资源关联。
      1️⃣1️⃣ 添加项目:通过POST请求添加。
      1️⃣2️⃣ 速率限制:设计基于条件的规则。

alt text

  1. API Gateway网关技术:软件架构中的交通枢纽
    • ✅API Gateway的功能:
      ▫️ 访问请求:处理对API的访问请求。
      ▫️ 路由:将请求路由到正确的后端服务。
      ▫️ 认证:确保只有经过验证的用户和系统可以访问API。
      ▫️ 协议数据转换:在不同协议之间转换数据。
      ▫️ 流量管理:处理API的流量,包括负载均衡。
      ▫️ 基本设置管理:提供API的基本配置管理功能。
      ▫️ 监控:监控API的使用情况和性能。
      ▫️ 策略配置管理:管理API的策略和规则。

alt text

  • ✅API Gateway的层次结构:
    ▫️ 核心层:处理路由、协议数据转换和流量管理。
    ▫️ 管理层:提供API的基本设置管理。
    ▫️ 监控层:负责监控、日志报告和策略配置管理。

  • 🎯API网关作用及拓扑实现
    1️⃣ 请求接收:客户端向API网关发送HTTP请求
    2️⃣ 参数验证:API网关解析并验证HTTP请求中的参数
    3️⃣ 访问控制:执行允许/拒绝列表检查。
    4️⃣ 身份验证授权:与身份提供商对话进行身份验证和授权
    5️⃣ 速率限制:应用速率限制规则,超过限制的请求被拒绝。
    6️⃣ 动态路由:请求通过基本检查后,API网关通过路径匹配找到相关服务
    7️⃣ 服务发现:API网关将请求路由到后端有效的微服务
    8️⃣ 协议转换:将请求转换为适当的协议并发送到后端服务。
    9️⃣ 错误处理:正确处理错误
    🔟 熔断机制:长时间错误时处理故障
    1️⃣1️⃣ 日志监控:利用ELK堆栈进行日志记录和监控
    1️⃣2️⃣ 数据缓存:在API网关中缓存数据以提高效率

alt text

  1. API网关与负载均衡器设备
  • 🔧 负载均衡器:主要负责在多个服务器间分配流量,提高系统的可用性和扩展性。分为网络层(NLB)和应用层(ALB),其中ALB根据HTTP头部或URL进行更细致的流量分配。
  • 🚪 API网关:工作在应用层面,负责API请求的路由、认证、限流、缓存等,减轻后端服务的负担,但相比ALB灵活性较低。
    alt text
  1. API网关应用场景
  • 🎯 API网关的五大应用场景
    🔸 Caching(缓存):🔥提升应用性能,适用于频繁请求相同数据的场景
    🔸 Aggregation(聚合):🔧简化客户端代码,提升性能,适用于需要从多个服务获取数据的场景
    🔸 Request Routing(请求路由):🛤️根据请求路径或其他属性将请求路由到正确的后端服务,提升应用的可扩展性和性能
    🔸 Rate Limiting and Throttling(限流和节流):🚦控制用户在给定时间内对后端服务的请求次数,防止服务拒绝攻击,确保API的公平访问
    🔸 Authentication and Authorization(认证和授权):🔐保护应用免受未授权访问,验证用户凭证和权限。
    alt text
  1. 监控API健康状态
  • 🎯API可观测性:监控你的API健康状态
    📈 Metrics(度量):用于监控API性能,如响应时间,确保API运行迅速。
    📢 Events(事件):追踪系统内的重要变化,如服务中断或更新。
    📝 Logs(日志):记录应用行为,帮助理解API如何被使用。
    🔍 Traces(追踪):映射请求在系统中的流转路径,用于问题定位。
    通过度量、事件、日志和追踪四个维度,帮助开发者和运维团队监控API的健康状况,及时发现并解决问题,从而提高API的可靠性和性能。
    alt text

参考文献或转载相关: