aws / aws/serverless-java-container

Need to add application/javascript and text/css as binary types for

オープン
#1,435 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
1.6k
フォーク
574
PR マージ指標
30日以内にマージされた PR はありません

説明

I don't know which component in the stack is wrong.

- springdoc-openapi-starter-webmvc-ui will serve up swagger-ui/index.html, locally 100% and when deployed to a AWS API Gateway (HTTP-style) only some .js files and the .html file serve, the rest blowing up in the API Gateway response with no error message

I think the minimal repro is to add `springdoc-openapi-starter-webmvc-ui ` (via pom.xml) to the ping controller example (which is a bad name for an endpoint because it clashes with the automatically provided route of AWS API Gateway, I usually have to rename it to pong)

I told the container to treat application/javascript and text/css as binary and API Gateway stopped trying to do something (unnecessary encoding/decoding) to the response and now swagger-ui loads.

I'm leaving this here because other issues have run into the same problem and came up with worse workarounds (like stop even trying to serve some content types on API Gateway at all)

That this works locally in tomcat makes me think that something is wrong with API Gateway or serverless-container.

```xml

org.springdoc
springdoc-openapi-starter-webmvc-ui
2.8.6

```

```java
public class StreamLambdaHandler implements RequestStreamHandler, Resource {
private static SpringBootLambdaContainerHandler handler;
static {
try {
handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(Application.class);
LambdaContainerHandler.getContainerConfig().addBinaryContentTypes("application/javascript");
LambdaContainerHandler.getContainerConfig().addBinaryContentTypes("text/css");
} catch (ContainerInitializationException e) {
// if we fail here. We re-throw the exception to force another cold start
e.printStackTrace();
throw new RuntimeException("Could not initialize Spring Boot application", e);
}
}
}
```
My code: https://github.com/matthewdeanmartin/lambda_for_free/blob/main/spring_http/src/main/java/com/example/interviews/StreamLambdaHandler.java#L27

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start with the linked StreamLambdaHandler.java example and inspect the serverless container's binary content configuration for AWS responses. Reproduce the issue with springdoc-openapi-starter-webmvc-ui, then determine whether application/javascript and text/css should be recognized by default; done means the Swagger UI assets load through API Gateway with coverage for the expected response behavior.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
aws, java, spring-boot
領域
api, backend, cloud
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。