2016-06-28 23 views
7

Trong Swagger, @Api Chú thích của description không còn được dùng nữa.Mô tả của chú thích Api không được chấp nhận

Có cách nào mới hơn để cung cấp mô tả không?

+0

Bạn đề cập đến phiên bản nào? – Jens

+0

https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X hoặc có thể http://docs.swagger.io/swagger-core/current/apidocs/index.html?io/ swagger/annotations/Api.html có thể giúp –

+0

@Jens Tôi đang sử dụng phiên bản 2.4.0 (springfox) –

Trả lời

0

Lý do tại sao nó không được chấp nhận là các phiên bản Swagger trước đó (1.x) đã sử dụng chú thích mô tả @Api cho các hoạt động nhóm.

Trong đặc tả Swagger 2.0, khái niệm tags được tạo và tạo cơ chế nhóm linh hoạt hơn. Để tuân thủ API, trường description được giữ lại để các bản nâng cấp trở nên dễ dàng, nhưng cách chính xác để thêm mô tả là thuộc tính tags, nên tham chiếu chú thích @Tag. @Tag cho phép bạn cung cấp mô tả và cả các liên kết bên ngoài, v.v.

0

Tôi đã tìm thấy giải pháp cho ứng dụng Khởi động mùa xuân của mình. Thứ nhất, sử dụng phương pháp tags cho chỉ định các định nghĩa thẻ trong Docket của bạn:

@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 

    @Bean 
    public Docket productApi() { 
     return new Docket(DocumentationType.SWAGGER_2).select() 
       .apis(RequestHandlerSelectors.basePackage("my.package")).build() 
       .apiInfo(apiInfo()) 
       .tags(new Tag("tag1", "Tag 1 description."), 
         new Tag("tag2", "Tag 2 description."), 
         new Tag("tag2", "Tag 3 description.")); 
    } 

    private ApiInfo apiInfo() { 
     return new ApiInfoBuilder().title("My API").version("1.0.0").build(); 
    } 
} 

Sau đó, trong RestController chỉ cần thêm chú thích @Api với một (hoặc nhiều) của thẻ của bạn. Ví dụ:

@Api(tags = { "tag1" }) 
@RestController 
@RequestMapping("tag1Domain") 
public class Tag1RestController { ... } 
Các vấn đề liên quan