AWS API 网关:在集成 uri 中使用资源的动态部分
AWS API Gateway: Use dynamic part of resource in integration uri
我想为 AWS CDK API 网关定义中的集成 uri 重新使用动态资源值。
假设我有两个服务:
服务足球
服务网球
两者都有一个端点“玩家”。
现在我想要一个单一的 api 网关定义,用于足球和网球运动员。我尝试动态定义如下:
endpt = rest_api.root.add_resource(path_part='endpoint')
sport_endpt = endpt.add_resource("{sport}")
players_endpt = sport_endpt.add_resource("players")
players_endpt.add_method(
http_method='GET',
...
integration=apigw.Integration(
type=_apigw.IntegrationType.HTTP,
integration_http_method='GET',
uri=uri + '/service-*HERE_THE_SPORT_PARAM*/players',
)
)
在集成部分,我想使用动态资源值 {sport} 动态创建 uri 部分,这样我就可以得到类似 /service-football/players 或 /service-tennis/players 的内容,我可以通过以下方式轻松扩展使用相同的约定创建服务端点。
如果您想要单个 API 端点定义,则需要将运动作为路径参数包含在内,因此它类似于 BASE_URI/service/{sport}/players
.
对应的cdk为
endpt = rest_api.root.add_resource(path_part='endpoint')
service_endpt = endpt.add_resource(path_part='service')
sport_endpt = service_endpt.add_resource("{sport}")
players_endpt = sport_endpt.add_resource("players")
players_endpt.add_method(
http_method='GET',
...
integration=apigw.Integration(
type=_apigw.IntegrationType.HTTP,
integration_http_method='GET',
uri=uri + '/service/{sport}/players',
)
)
我想为 AWS CDK API 网关定义中的集成 uri 重新使用动态资源值。
假设我有两个服务:
服务足球 服务网球 两者都有一个端点“玩家”。
现在我想要一个单一的 api 网关定义,用于足球和网球运动员。我尝试动态定义如下:
endpt = rest_api.root.add_resource(path_part='endpoint')
sport_endpt = endpt.add_resource("{sport}")
players_endpt = sport_endpt.add_resource("players")
players_endpt.add_method(
http_method='GET',
...
integration=apigw.Integration(
type=_apigw.IntegrationType.HTTP,
integration_http_method='GET',
uri=uri + '/service-*HERE_THE_SPORT_PARAM*/players',
)
)
在集成部分,我想使用动态资源值 {sport} 动态创建 uri 部分,这样我就可以得到类似 /service-football/players 或 /service-tennis/players 的内容,我可以通过以下方式轻松扩展使用相同的约定创建服务端点。
如果您想要单个 API 端点定义,则需要将运动作为路径参数包含在内,因此它类似于 BASE_URI/service/{sport}/players
.
对应的cdk为
endpt = rest_api.root.add_resource(path_part='endpoint')
service_endpt = endpt.add_resource(path_part='service')
sport_endpt = service_endpt.add_resource("{sport}")
players_endpt = sport_endpt.add_resource("players")
players_endpt.add_method(
http_method='GET',
...
integration=apigw.Integration(
type=_apigw.IntegrationType.HTTP,
integration_http_method='GET',
uri=uri + '/service/{sport}/players',
)
)