Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向API网关提供多个路径参数(无服务器)_Javascript_Aws Api Gateway_Serverless - Fatal编程技术网

Javascript 向API网关提供多个路径参数(无服务器)

Javascript 向API网关提供多个路径参数(无服务器),javascript,aws-api-gateway,serverless,Javascript,Aws Api Gateway,Serverless,我在一个模块中有一个方法“DB\u Update” 此方法需要几个参数作为输入(InputA、InputB和InputUTC) 我想使用serverless和AWS API网关通过API请求调用函数 因此,在我的无服务器yml文件中添加了该函数 DB_Update: handler: ../DB_Update events: - http: path: DB_Update/{InputA, InputB, InputB} me

我在一个模块中有一个方法“DB\u Update”

此方法需要几个参数作为输入(InputA、InputB和InputUTC)

我想使用serverlessAWS API网关通过API请求调用函数

因此,在我的无服务器yml文件中添加了该函数


DB_Update:
    handler: ../DB_Update
    events:
      - http:
          path: DB_Update/{InputA, InputB, InputB}
          method: get

最后,我使用参数通过Postman调用端点

http://localhost:3000/dev/DB_Update/InputA=9783404163809&InputB=111&InputC=BB
然而,无论我尝试哪种选择,我都无法让它工作。要么yml不接受输入参数的组合,要么我无法取回事件对象


因此,如果您能给我一个提示,告诉我如何进行此操作,那就太好了。谢谢

您需要决定是将参数作为路径参数传递(例如
baseurl/{varA}/{varB}/{varC}
)还是作为查询参数传递(例如
baseurl?varA=x&varB=y&varC=z
)。提供对不同模式的更多了解

根据您决定的模式,请求参数应以以下格式包含在
serverless.yml
文件中(如果需要,将字段设置为
true
,如果可选,将字段设置为
false
):

路径参数

DB_Update:
    handler: ../DB_Update
    events:
      - http:
          path: DB_Update/{InputA}/{InputB}/{InputC}
          method: get
          request:
            parameters:
              paths:
                InputA: true
                InputB: true
                InputC: true
查询参数:

DB_Update:
    handler: ../DB_Update
    events:
      - http:
          path: DB_Update
          method: get
          request:
            parameters:
              querystrings:
                InputA: true
                InputB: true
                InputC: true

有关更多信息,请访问无服务器框架文档。

您需要决定是否要将参数作为路径参数传递(例如
baseurl/{varA}/{varB}/{varC}
)或查询参数(例如
baseurl?varA=x&varB=y&varC=z
)。提供对不同模式的更多了解

根据您决定的模式,请求参数应以以下格式包含在
serverless.yml
文件中(如果需要,将字段设置为
true
,如果可选,将字段设置为
false
):

路径参数

DB_Update:
    handler: ../DB_Update
    events:
      - http:
          path: DB_Update/{InputA}/{InputB}/{InputC}
          method: get
          request:
            parameters:
              paths:
                InputA: true
                InputB: true
                InputC: true
查询参数:

DB_Update:
    handler: ../DB_Update
    events:
      - http:
          path: DB_Update
          method: get
          request:
            parameters:
              querystrings:
                InputA: true
                InputB: true
                InputC: true

有关更多信息,请访问无服务器框架文档。

以上答案回答得很好。请注意,实际上不必在路径参数请求下指定参数。这样就足够了:

DB_Update:
    handler: ../DB_Update
    events:
      - http:
          path: DB_Update/{InputA}/{InputB}/{InputC}
          method: get
此外,您还可以混合使用路径和查询参数,因此您可以使用如下内容:

    handler: ../DB_Update
    events:
      - http:
          path: DB_Update/{InputD}
          method: get
          request:
            parameters:
              querystrings:
                InputA: true
                InputB: true
                InputC: true

上面的答案很好。请注意,实际上不必在路径参数请求下指定参数。这样就足够了:

DB_Update:
    handler: ../DB_Update
    events:
      - http:
          path: DB_Update/{InputA}/{InputB}/{InputC}
          method: get
此外,您还可以混合使用路径和查询参数,因此您可以使用如下内容:

    handler: ../DB_Update
    events:
      - http:
          path: DB_Update/{InputD}
          method: get
          request:
            parameters:
              querystrings:
                InputA: true
                InputB: true
                InputC: true

非常感谢你。我对您的代码以及推荐的其他源代码进行了彻底的研究。他们帮了我很大的忙,我能修好我的密码。非常感谢。我对您的代码以及推荐的其他源代码进行了彻底的研究。他们非常有帮助,我能够修复我的代码