向springmvc应用程序添加restapi

0wi1tuuw  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(250)

假设一个应用程序有一个基于springmvc和thymeleaf的传统ui,似乎有几种方法可以公开restapi。。。
使用@restcontroller添加一组完全独立的控制器-感觉有很多重复,但是允许完全分离ui和rest逻辑
为每个实体使用一个控制器,并混合使用@responsebody方法和modelandview方法-将给定实体的所有逻辑保持在一个位置,但需要混合不同的概念
为每个实体使用一个控制器,仅使用modelandview,并使用与json视图解析器(如mappingjackson2jsonview)的内容协商(https://spring.io/blog/2013/06/03/content-negotiation-using-views/)
我对#3特别感兴趣,因为它与ruby on rails控制器如何处理不同内容类型的respond#to类似。
这是spring应用程序中常见的方法/最佳实践吗?
post和delete请求是否仍然需要单独的方法,因为它们在restapi和ui之间的工作方式可能不同(i、 e.发布表单与发布json实体)
它是否需要根据是ui请求还是api请求进行单独的异常处理?

xqkwcwgp

xqkwcwgp1#

我会选择第一种。有一套单独的 @Controller 以及 @RestController 避免将mvc模式与restapi混合。为了避免代码重复,您应该添加一个服务层,并让rest端点和mvc控制器使用该服务层。

相关问题