首页 > 解决方案 > 我可以在使用 Amplify 创建 Rest API 时跳过生成 {proxy+}

问题描述

我目前正在使用放大创建rest-api:s。我正在尝试创建以下结构:

但是尝试推送后端时出现以下错误:

Unable to create resource at path '/helloText/{proxy+}': A sibling ({name}) of this resource already has a variable path part -- only one is allowed

据我了解,这是因为 Amplify 默认创建“贪婪路径”。

从模板文件 RestTest-cloudformation-template.json 手动删除这些“贪婪路径”时,它可以工作。

是否可以仅使用命令行来创建这些路径?

标签: aws-api-gatewayaws-amplifyaws-amplify-cli

解决方案


在 amplify-cli 中没有配置开关。您需要创建一个覆盖。参考:放大覆盖 api。跑:

amplify override api

然后编辑生成的override.ts像:

import { AmplifyApiRestResourceStackTemplate } from '@aws-amplify/cli-extensibility-helper';

export function override(resources: AmplifyApiRestResourceStackTemplate) {
  const {paths} = resources.restApi.body;
  Object.keys(paths).forEach((path) => {
    if (path.includes('{proxy+}')) {
      delete paths[path];
    }
  });
}

推荐阅读