Могу ли я заставить aws-serverless-java-container работать с Swagger? - PullRequest
0 голосов
/ 29 апреля 2018

Я использую aws-serverless-java-container с Spring Boot, и я хотел бы получить интерактивную документацию Swagger, такую ​​как эта .

Я мог бы обслуживать его динамически из AWS Lambda или генерировать спецификацию OpenAPI во время компиляции, а затем просто загрузить его в AWS S3.

К сожалению, когда я добавил build.gradle:

compile('io.springfox:springfox-swagger2:2.7.0')
compile('io.springfox:springfox-swagger-ui:2.7.0')

и этот код конфигурации для класса SwaggerConfiguration:

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.mypackage.controller"))
                .paths(PathSelectors.any())
                .build();
    }

}

Я не смог получить доступ к своему Swagger UI по этому URL: http://localhost:5000/swagger-ui.html. Я получил 404 Not Found.

Однако я смог получить доступ к спецификации OpenAPI по этому URL: http://localhost:5000/v2/api-docs. Хотя этот URL (/v2/api-docs) не работал (404 не найден), когда я загрузил свое приложение в AWS Lambda.

Итак, как заставить его работать на AWS Lambda или как сгенерировать его во время компиляции для загрузки S3?

1 Ответ

0 голосов
/ 15 июня 2018

Этот ответ, вероятно, слишком поздно для вас. Однако я подозреваю, что это как-то связано с тем, как События для функции настроены в вашем шаблоне SAM. Для того, чтобы принимать запросы к корню API, вам нужно добавить дополнительное сопоставление ЛЮБОГО метода:

Events:
  RootResource:
    Type: Api
    Properties:
      Path: /
      Method: ANY
  OtherResources:
    Type: Api
    Properties:
      Path: /{proxy+}
      Method: ANY
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...