Springfox标签不适用于PagingAndSortingRepository

时间:2018-01-29 20:58:13

标签: spring-boot swagger spring-rest springfox

我使用Spring Boot 1.5.8和Springfox 2.8.0。我在我的PagingAndSortingRepository中添加了一个标签,试图在"主题操作"下组织所有的crud方法。在Swagger UI中进行标题。

然而,最终结果是某些方法出现在主题实体:简单Jpa存储库标题下,例如,

GET / api /臣/ {id} / images subjectImages

POST / api / subjects / {id} / images subjectImages

......等等

其余方法位于主题操作

GET / api / subject findAllSubject

POST / api / subject saveSubject

..等等。

看起来Spring正在为外键相关数据生成方法,例如: / subject / images,没有在标签下移动,但我不确定如何纠正这种情况?

@CrossOrigin(origins = "http://localhost:3000")
@RepositoryRestResource(collectionResourceRel = "subjects", path = "subjects", excerptProjection = SubjectView.class)
@Api(tags = { "Subject Operations" })
public interface SubjectRepository extends PagingAndSortingRepository<Subject, Integer> {

    @Query("select distinct s from Subject s "
        + "join s.images si "
        + "where si.dataset.id = ?1")
    Page<Subject> findByDatasetId(Pageable pagable, @Param("datasetId") int datasetId);

}

1 个答案:

答案 0 :(得分:0)

在存储库中定义标签,然后以大胆的配置创建它。标签名称作为标准标签“ * Entity”。这对我有用:

@Api(tags = "Channel Entity")
@RepositoryRestResource
public interface ChannelRepository extends JpaRepository<Channel, Long> {
..
}

昂扬的配置:

 @Bean
  public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo()).select()
        .apis(RequestHandlerSelectors.any())
        .paths(..))
        .build()
        .tags(new Tag("Channel Entity", "Data-rest endpoints"))
}