【问题标题】:AWS API Gateway - Remove Stage Name From URIAWS API Gateway - 从 URI 中删除阶段名称
【发布时间】:2017-01-24 04:34:33
【问题描述】:

当我部署 API 时,阶段名称会添加到 url。假设阶段名称是“test”,那么为资源生成的 URL 包含阶段名称。就像是: https://abcabc.execute-api.us-east-1.amazonaws.com/test/my/path

我想删除 URL 中的舞台名称。我该怎么做?

【问题讨论】:

  • 我最终设置了一个 Cloudfront 分发以使用自定义域名,然后使用 Cloudfront 函数删除附加到我的 Zappa 部署的 Flask 应用程序的自定义域名的阶段名称:@987654322 @

标签: aws-api-gateway


【解决方案1】:

您可以使用 API Gateway Custom Domains 执行此操作。这允许您有选择地省略自定义域名映射中的阶段名称。

【讨论】:

  • 那么,在上面的例子中,“mydomain.com/my/path”指向我的“测试”阶段?它不会显示“mydomain.com/test/my/path”?
  • 没错 - 您可以在自定义域映射中省略舞台名称
  • @RyanG 在哪一步我们可以省略舞台名称?我只能在Configure API mappings 面板中看到path (optional)。如果我在路径中输入somepath,则api变为https://example.com/somepath/dev0/yyyy但舞台名称dev0仍然存在
  • @RyanG 我的错,刚刚尝试,设置 path (optional) 有效
  • @RyanG 您在哪里看到了在自定义域设置中省略舞台名称的选项?
【解决方案2】:

我无法在接受的答案中使用自定义域方法,因为我的 api 网关已与 url 中的阶段一起使用。我需要移除特定路线的舞台。对于这个例子,这个路由:https://example.com/apple-app-site-association需要打api网关路由:https://example.com/v1/apple-app-site-association

使用云端,

Origins 选项卡中,创建一个新的 origin 以指向包含阶段的 api 网关:

源域名:example.com

原始路径:/v1

来源 ID:(给它一个唯一的名称并记下这个以供下一步使用)

(将其余设置保留为默认设置或根据需要更改,我设置了 Origin Protocol Policy:HTTPS Only

行为标签中,创建一个新行为:

路径模式:/apple-app-site-association

Origin:(您在上面设置的 Origin ID)

(将其余设置保留为默认设置或根据需要进行更改)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2021-05-07
    • 2022-06-10
    • 2019-01-06
    • 1970-01-01
    • 2020-09-16
    相关资源
    最近更新 更多