配置Firebase功能以接受HAL + JSON作为请求正文

时间:2018-01-19 01:34:45

标签: firebase google-cloud-functions

在Firebase中使用HTTP触发的函数时,我无法从HTTP请求中访问HAL + JSON有效内容。

请求如下:

POST /endpoint
Content-Type: application/hal+json

{ /* some payload */ }

在我的功能中,我使用request.body访问有效负载,如下所示:

...
var myPayload = request.body;
...

myPayload的值是:

{}

相反,当HTTP请求包含Content-Type: application/json时,myPayload的值是正确的:

{ /* some payload */ }

我认为它与以下内容有关:express.json()

有没有办法在Firebase中配置express以包含application/hal+json?例如:

express.json({
  type: [ 'application/json', 'application/hal+json' ]
});

或者自己访问原始身体?

注意:我不想在函数中创建快速应用程序。

1 个答案:

答案 0 :(得分:0)

请参阅the documentation了解Cloud Functions如何自动处理传入请求。

  

Cloud Functions解析application / json的请求正文内容类型   和application / x-www-form-urlencoded根据描述的规则   以上。纯文本内容类型(text / plain)作为传递   使用UTF-8作为默认编码的字符串(或自定义编码)   在内容类型标题中提供。)

     

对于其他内容类型,rawBody属性包含未解析的内容   请求体的字节作为Buffer对象。

您的"其他内容类型"这可能意味着您的原始请求正文可以从rawBody属性中的Request对象获得。