OpenWhisk返回整个响应对象,而不仅仅是数据
我有一个OpenWhisk操作返回一个响应对象,因为我想能够控制标题和HTTP状态码。 我的行动返回这样的事情:
return { statusCode: 200, headers: { 'Content-Type': 'application/json' }, body: { x: 1 } };
我通过命令行将操作部署在一个包中:
wsk action update myproj/myaction --kind nodejs:6 myaction.zip --web true
并将其作为IBM Cloud Functions上的API公开:
wsk api create /myproj /myaction get myproj/myaction
但是当我用curl
访问API调用时,我得到了整个响应对象,而不仅仅是数据:
curl '.../myproj/myaction' { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": { x: 1 } }
我期待得到{ x: 1 }
。
我需要做什么来解决这个问题?
默认的API网关服务行为期望从操作中返回主体数据,而不是完整的HTTP响应参数。
将return语句更改为以下内容来解决此问题。
return { x: 1 };
使用返回的操作参数来控制完整的HTTP响应,需要Web操作中的--response-type http
标志设置。
$ wsk api create /myproj /myaction get myproj/myaction --response-type http