无服务器 AWS API 冲突路由

问题描述

get_all_regions:
  handler: regions/admin/handler.get_all_regions
  tags:
    Name: get-all-regions
  events:
    - httpApi:
        method: GET
        path: /admin/regions

get_all_regions_preflight:
  handler: default/handler.get_preflight
  tags:
    Name: get-preflight
  events:
    - httpApi:
        method: OPTIONS
        path: /admin/regions

get_region:
  handler: regions/admin/handler.get_region
  tags:
    Name: get-region-details
  events:
    - httpApi:
        method: GET
        path: /admin/regions/{id}

get_region_preflight:
  handler: default/handler.get_preflight
  tags:
    Name: get-preflight
  events:
    - httpApi:
        method: OPTIONS
        path: /admin/regions/{id}

create_region:
  handler: regions/admin/handler.create_region
  tags:
    Name: add-region
  events:
    - httpApi:
        method: POST
        path: /admin/regions

错误:新路由 /local/admin/regions 与现有 /local/admin/regions 冲突。

尽管这些路由具有不同的方法类型,但我仍然收到此错误。我尝试过在线搜索但没有找到任何东西,我正在尝试遵循 REST API 约定并因此保持这种方式。

解决方法

冲突的路由如下:

get_region_preflight:
  handler: default/handler.get_preflight
  tags:
    Name: get-preflight
  events:
    - httpApi:
        method: OPTIONS
        path: /admin/regions/{id}


get_all_regions_preflight:
  handler: default/handler.get_preflight
  tags:
    Name: get-preflight
  events:
    - httpApi:
        method: OPTIONS
        path: /admin/regions
    

您正在尝试两次部署相同的功能,请尝试:

get_regions_preflight:
  handler: default/handler.get_preflight
  tags:
    Name: get-preflight
  events:
    - httpApi:
        method: OPTIONS
        path: /admin/regions
    - httpApi:
        method: OPTIONS
        path: /admin/regions/{id}