aws / aws/serverless-java-container
Provide several Custom Domains and base paths
- 主要语言
- Java
- 星标
- 1.6k
- 派生
- 574
- PR 合并指标
- 30 天内没有已合并 PR
描述
* Framework version: 1.3.2
* Implementations: Jersey
I have several different systems running my serverless container:
1. API Gateway + Lambda with Custom Domain Name at `https://api.myproject.com/v1/users/12345`
custom domain: `api.myproject.com`
base path: `v1/users`
2. API Gateway + Lambda with stage path (for testing development releases): https://ixov38idvk.execute-api.us-east-1.amazonaws.com/dev/users/12345
base path: `users`
3. SAM Local at `http://127.0.0.1:3000/users/12345`
base path: `users`
4. Local Tomcat instance for local testing
base path: `users`
So basically the base path changes from the production stage to all other deployments.
Could we then specify several base paths and the one that first matches is the one to be removed?
Also, I tried to return the URI of a created user with:
```java
URI uriLocation = uriInfo.getAbsolutePathBuilder().path(newUserUuid.toString()).build();
return Response.created(uriLocation).build();
```
But since the service base path was stripped, I get an invalid URI instead, such as `https://api.myproject.com/12345`, instead of `https://api.myproject.com/v1/users/12345`
Is it possible to re-inject the stripped path, so we can programatically get the full URI of the original HTTP Request?
贡献指南
调研方向
Start with the Jersey URI handling described around uriInfo.getAbsolutePathBuilder() and the service base-path stripping behavior. Reproduce the API Gateway custom-domain, stage-path, SAM Local, and Tomcat cases, then verify that multiple base paths use the first match and that created-resource URIs retain the original path.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- aws, java
- 领域
- api, backend, cloud
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100