API网关BODY传输的配置和调用详解

在API网关上开放服务时,不少API开放者对于在API网关上怎样配置BODY有些迷茫,导致花费在配置和调试上的时间较多,本文将针对API网关POST方法下,各种情况的Body配置进行详细介绍,希望能减少用户的困惑。

常用的Content-Type

在进行HTTP的POST请求中,需要配置Content-Type指定body的类型。下面以常见的3种进行举例。

Content-type 描述
application/x-www-form-urlencoded 数据被编码为名称/值对,数据以form的形式传输
application/json 表示body是一个JSON数据格式
application/octet-stream 二进制流数据,如常见的文件下载

注:API网关不支持multipart形式进行文件上传。如果有文件上传,需要将文件进行Base64后放到Body中传输,而且Body大小不能超过2M,如果有大于2M的内容,您可以结合OSS工具使用(通过OSS上传文件,API网关只传输地址)。

API Body配置

首先,我们需要知道body应该以什么形式传给后端。下面将分别针对3种类型的content-type进行API网关配置和调用的介绍。

1、application/x-www-form-urlencoded

这种形式表示body以Form形式传输,API网关配置如下:

  • 1、选择Method为POST
  • 2、在入参定义中选择参数位置为“Body”进行配置
    API网关BODY传输的配置和调用详解

调用以postman工具为例

API网关BODY传输的配置和调用详解

2、application/json

这种形式表示body是JSON格式,一般如果后端是Spring MVC的API,参数需要以该形式传输。
在API网关配置时,需要勾选“非Form表单数据,比如JSON字符串、文件二进制数据等”。

API网关BODY传输的配置和调用详解
可以把body格式放到"Body内容描述"里面,可以自动生成文档。

另外,在下一页“定义API后端服务”部分,需要设置Content-Type值为“application/json”或者“透传客户端”。
API网关BODY传输的配置和调用详解

调用以postman工具为例

header需要修改Content-Type为“application/json”.
API网关BODY传输的配置和调用详解

3、application/octet-stream

这种content-type一般用于上传一个文件或者图片。API网关的配置如下:
API网关BODY传输的配置和调用详解

注意:下一页“定义API后端服务”部分,可以设置Content-Type值为“application/octet-stream”或者“透传客户端”。
API网关BODY传输的配置和调用详解

调用以postman工具为例:

header需要修改Content-Type为“application/octet-stream”.
API网关BODY传输的配置和调用详解

以上是API网关常见的几种数据类型传输,如果有其他类型,可以参考application/json和application/octet-stream的配置方式。

上一篇:使用API网关流控防攻击


下一篇:零配置命令行HTTP服务器 http-server