When to use @RestController vs @RepositoryRestResource

后端 未结 4 1120
礼貌的吻别
礼貌的吻别 2020-12-07 10:34

I have been looking at various examples of how to use Spring with REST. Our end target is a Spring HATEOAS/HAL setup

I have seen two d

4条回答
  •  旧巷少年郎
    2020-12-07 11:03

    There is a third (and fourth) option that you have not outlined, which is to use either @BasePathAwareController or @RepositoryRestController, depending on whether you are performing entity-specific actions or not.

    @RepositoryRestResource is used to set options on the public Repository interface - it will automatically create endpoints as appropriate based on the type of Repository that is being extended (i.e. CrudRepository/PagingAndSortingRepository/etc).

    @BasePathAwareController and @RepositoryRestController are used when you want to manually create endpoints, but want to use the Spring Data REST configurations that you have set up.

    If you use @RestController, you will create a parallel set of endpoints with different configuration options - i.e. a different message converter, different error handlers, etc - but they will happily coexist (and probably cause confusion).

    Specific documentation can be found here.

提交回复
热议问题