在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”进行配置
调用以postman工具为例
2、application/json
这种形式表示body是JSON格式,一般如果后端是Spring MVC的API,参数需要以该形式传输。
在API网关配置时,需要勾选“非Form表单数据,比如JSON字符串、文件二进制数据等”。
可以把body格式放到"Body内容描述"里面,可以自动生成文档。
另外,在下一页“定义API后端服务”部分,需要设置Content-Type值为“application/json”或者“透传客户端”。
调用以postman工具为例
header需要修改Content-Type为“application/json”.
3、application/octet-stream
这种content-type一般用于上传一个文件或者图片。API网关的配置如下:
注意:下一页“定义API后端服务”部分,可以设置Content-Type值为“application/octet-stream”或者“透传客户端”。
调用以postman工具为例:
header需要修改Content-Type为“application/octet-stream”.
以上是API网关常见的几种数据类型传输,如果有其他类型,可以参考application/json和application/octet-stream的配置方式。