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

简介: 在API网关上开放服务时,不少API开放者对于在API网关上怎样配置BODY有些迷茫,导致花费在配置和调试上的时间较多,本文将针对API网关POST方法下,各种情况的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网关form配置

调用以postman工具为例

Jietu20180930_161234

2、application/json

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

Jietu20180930_161904
可以把body格式放到"Body内容描述"里面,可以自动生成文档。

另外,在下一页“定义API后端服务”部分,需要设置Content-Type值为“application/json”或者“透传客户端”。
Jietu20180930_162356

调用以postman工具为例

header需要修改Content-Type为“application/json”.
Jietu20180930_162643

3、application/octet-stream

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

注意:下一页“定义API后端服务”部分,可以设置Content-Type值为“application/octet-stream”或者“透传客户端”。
Jietu20180930_163140

调用以postman工具为例:

header需要修改Content-Type为“application/octet-stream”.
Jietu20180930_163809

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

目录
相关文章
|
26天前
|
微服务 应用服务中间件
微服务跨域(通过网关配置进行跨域)
在单体架构中,我们通常通过SpringMVC配置类实现CORS跨域支持,设置允许的来源、请求头、方法及凭证等。然而,在微服务架构下,因浏览器首先访问网关再进行服务路由,需在网关配置跨域。对于无SpringMVC环境的网关(如使用Gateway组件),我们可在YAML文件中配置`spring.cloud.gateway.globalcors`属性,以实现全局跨域支持。
43 0
|
14天前
|
前端开发 API 网络架构
【Azure 应用服务】能否通过 Authentication 模块配置 Azure AD 保护 API 应用?
【Azure 应用服务】能否通过 Authentication 模块配置 Azure AD 保护 API 应用?
|
14天前
|
安全 API 网络安全
【Azure API 管理】APIM如何配置客户端证书的CRL检测策略
【Azure API 管理】APIM如何配置客户端证书的CRL检测策略
|
15天前
|
测试技术 API
【API管理 APIM】如何查看APIM中的Request与Response详细信息,如Header,Body中的参数内容
【API管理 APIM】如何查看APIM中的Request与Response详细信息,如Header,Body中的参数内容
|
30天前
|
安全 前端开发 Java
微服务网关及其配置
微服务网关及其配置
70 4
|
13天前
|
存储 API C#
【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中
【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中
|
13天前
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
|
14天前
|
API
【Azure 环境】在Azure活动目录中的应用注册,给应用添加API权限时发现API权限配置缺失
【Azure 环境】在Azure活动目录中的应用注册,给应用添加API权限时发现API权限配置缺失
|
14天前
|
存储 容器
【Azure 事件中心】为应用程序网关(Application Gateway with WAF) 配置诊断日志,发送到事件中心
【Azure 事件中心】为应用程序网关(Application Gateway with WAF) 配置诊断日志,发送到事件中心
|
15天前
|
前端开发 API
【API管理 APIM】APIM中如何配置使用URL路径的方式传递参数(如由test.htm?name=xxx 变为test\xxx)
【API管理 APIM】APIM中如何配置使用URL路径的方式传递参数(如由test.htm?name=xxx 变为test\xxx)
下一篇
DDNS