aws / aws/serverless-java-container

Provide several Custom Domains and base paths

未關閉
#268 5 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
wontfix
主要語言
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?

貢獻指南

開啟貢獻指南

研究方向

從 uriInfo.getAbsolutePathBuilder() 附近所描述的 Jersey URI 處理以及 service base-path 移除行為開始。接著重現 API Gateway custom-domain、stage-path、SAM Local 和 Tomcat 的情況,並驗證存在多個 base paths 時使用第一個相符項目,且建立的資源 URI 保留原始路徑。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
aws, java
領域
api, backend, cloud
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。