【问题标题】:Sending appropriate error responses on web actions在 Web 操作上发送适当的错误响应
【发布时间】:2019-06-29 23:37:36
【问题描述】:

我有一些启用 Web 的操作,这些操作通过 IBM Cloud Serverless Functions 中的 API Connect 公开。 我的一些操作使用请求承诺来调用外部 REST 服务,我需要能够捕获错误并以适当的状态代码响应调用者。 由于这些操作是支持 Web 的,因此文档表明我可以使用带注释的 JSON 来设置响应的标头、状态代码和正文。但似乎 API 似乎总是希望得到一个 Content-Type=application/json,响应处理器在出错的情况下无法理解我的注释。 我尝试了以下但没有成功:

let rp = require('request-promise');
function main(params){
    //setup options
    return rp(options).then( 
      res => {
        return res;
      }
    ).catch(
      err => {
        return { error: { statusCode:err.statusCode } }
      }
    );
}

另一种变化:

let rp = require('request-promise');
function main(params){
    //setup options
    return rp(options).then( 
      res => {
        return res;
      }
    ).catch(
      err => {
        return { statusCode:err.statusCode }
      }
    );
}

问题是我总是得到的状态码是 200... 我还尝试将运行时更改为 node8.0,但没有成功。

谢谢!

【问题讨论】:

    标签: openwhisk ibm-cloud-functions


    【解决方案1】:

    我自己找到了答案:)

    为了获取状态码和标头,必须将字段Response Content Type 设置为`Use "Content-Type" header from action",同时设置API调用和操作之间的映射... .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      相关资源
      最近更新 更多