概述
本文主要介绍网关的几个核心概念,以便更好地进行 API 服务开发与调用。
协议转换
API 网关不仅是一个简单的反向代理服务,同时还提供协议转换的能力,支持使用 A 协议调用 B 协议的接口。协议转换与使用的编程语言无关,但是仅 Java 语言支持使用高级功能,比如服务端签名校验、数据加解密等,其他语言目前只能使用基础能力。
API 网关将协议分为 DownProtocol 和 UpProtocol,如下图所示。
DownProtocol 指的是从调用方发送请求到网关时使用的协议。当前 API 网关支持的 DownProtocol 包括:HTTP/HTTPS、SOFARPC、DUBBO。
UpProtocol 指的是网关将请求转发到提供方使用的协议。当前 API 网关支持的 UpProtocol 包括:HTTP/HTTPS、SOFARPC 和 DUBBO。
API 网关支持的 协议转换 如下:
HTTP/HTTPS > HTTP/HTTPS
HTTP/HTTPS > SOFARPC
SOFARPC > HTTP/HTTPS
DUBBO > HTTP/HTTPS
HTTP/HTTPS > DUBBO
SOFARPC > SOFARPC
请求认证
为了保证数据在传输过程中的安全性,API 网关支持对数据进行签名校验,包括网关对订阅方和网关之间数据的双向校验,以及提供方和网关之间数据的双向校验。其中,订阅方请求网关的时候必须对请求进行加签,而提供方无要求。
为了实现签名校验的能力,需要在发起请求时进行加签,收到响应后进行验签。当前 API 网关提供了以下语言的 SDK,方便用户使用:
API 服务提供者:Java-SDK
API 服务订阅者:js-signature-sdk、Java-SDK
其他语言的 SDK 会陆续推出,用户也可自行实现。
数据加密
统一网关提供了对客户端与网关之间传输的数据进行加密的能力,支持 RSA、ECC、国密 三种加密算法,保证数据传输过程中的安全性。详情参见 数据加密。
目前仅支持对 HTTP 类型的 API 调用进行数据加密。