概述

更新时间:

本文主要介绍网关的几个核心概念,以便更好地进行 API 服务开发与调用。

协议转换

API 网关不仅是一个简单的反向代理服务,同时还提供协议转换的能力,支持使用 A 协议调用 B 协议的接口。协议转换与使用的编程语言无关,但是仅 Java 语言支持使用高级功能,比如服务端签名校验、数据加解密等,其他语言目前只能使用基础能力。

API 网关将协议分为 DownProtocol 和 UpProtocol,如下图所示。

down-up-protocol

  • 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 调用进行数据加密。