【问题标题】:Can I make aws-serverless-java-container work with Swagger?我可以让 aws-serverless-java-container 与 Swagger 一起使用吗?
【发布时间】:2018-10-09 15:16:13
【问题描述】:

我将 aws-serverless-java-container 与 Spring Boot 一起使用,我希望拥有像 this one 这样的 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:http://localhost:5000/swagger-ui.html。我得到了 404 Not Found。

但是,我可以通过以下网址访问 OpenAPI 规范:http://localhost:5000/v2/api-docs。虽然当我将我的应用程序上传到 AWS Lambda 时,此 url (/v2/api-docs) 不起作用(404 Not found)。

那么,如何让它在 AWS Lambda 上运行,或者如何在编译期间生成它以供 S3 上传?

【问题讨论】:

    标签: java amazon-web-services aws-lambda swagger serverless


    【解决方案1】:

    这个答案对您来说可能为时已晚。但是,我怀疑这与函数的事件在您的 SAM 模板中的配置方式有关。为了接受对 API 根的请求,您需要添加一个额外的 ANY 方法映射:

    Events:
      RootResource:
        Type: Api
        Properties:
          Path: /
          Method: ANY
      OtherResources:
        Type: Api
        Properties:
          Path: /{proxy+}
          Method: ANY
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 2018-07-08
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      相关资源
      最近更新 更多