创建自定义成功的AWS API网关模型

时间:2019-11-26 16:37:10

标签: amazon-web-services aws-api-gateway api-gateway

我在Stack Overflow上没有发现任何内容,而且许多使用过AWS的人都知道,他们的文档可能很麻烦。如果我只需要一些文档的说明,那么谢谢您的链接。

我已经为客户构建了一个API端点。网关后面的所有内容都可以正常工作,但是我想为客户提供不同的消息以进行成功响应,而不是200状态代码,其内容为:null

我进入了API Gateway的“模型”菜单。我曾尝试对错误响应进行逆向工程,但它似乎带有一个对象,但在200s上仍然为空。

错误模型架构,API网关默认设置:

{
  "$schema" : "http://json-schema.org/draft-04/schema#",
  "title" : "Error Schema",
  "type" : "object",
  "properties" : {
    "message" : { "type" : "string" }
  }
}

上面JSON中的此URL指向一个我不知道如何使用的架构文件。

如果API密钥不正确,网关将返回

{
   "message": "Forbidden"
}

我如何让API网关成功返回以下内容?:

{
   "message": "Success"
}

代替

null

1 个答案:

答案 0 :(得分:0)

我的一个错误是,即使我将其用作lambda函数的网关,我仍然依靠API Gateway做出响应。

在lambda中:

let fetch = require('node-fetch');

exports.handler = async function(event, context) {

    event = JSON.stringify(event);

    await fetch(url, {method: 'POST', body: event});

    context.succeed({message: "Success"});

};

我必须使函数异步,然后等待提取的响应。一旦我知道我可以使用回调并返回消息。现在一切正常。我对邮递员的回答是

{
    "message": "Success"
}

您还可以为其他响应类型添加条件,或者使用.then().catch()处理成功和失败。解决方案不是要求API网关回答,而是要使用网关的端点。

希望这对某人有帮助。