API Gateway 是一个服务器,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的 Facade 模式很像。API Gateway 封装内部系统的架构,并且提供 API 给各个客户端。它还可能有 其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等。下图展示了一 个适应当前架构的 API Gateway。
image.png
API Gateway 负责请求转发、合成和协议转换。所有来自客户端的请求都要先经过 API Gateway, 然后路由这些请求到对应的微服务。API Gateway 将经常通过调用多个微服务来处理一个请求以 及聚合多个服务的结果。它可以在 web 协议与内部使用的非 Web 友好型协议间进行转换,如 HTTP 协议、WebSocket 协议。

1. 请求转发

服务转发主要是对客户端的请求安装微服务的负载转发到不同的服务上

2. 响应合并

把业务上需要调用多个服务接口才能完成的工作合并成一次调用对外统一提供服务。

3. 协议转换

重点是支持 SOAP,JMS,Rest 间的协议转换。

4. 数据转换

重点是支持 XML 和 Json 之间的报文格式转换能力(可选)

5. 安全认证

  1. 基于 Token 的客户端访问控制和安全策略
    2. 传输数据和报文加密,到服务端解密,需要在客户端有独立的 SDK 代理包
    3. 基于 Https 的传输加密,客户端和服务端数字证书支持
    4. 基于 OAuth2.0 的服务安全认证(授权码,客户端,密码模式等)