1. Controller层的业务设计
实际上,根据程序员必知之前端演进史一文所述Controller层应该做的事是:
处理请求的参数
渲染和重定向
选择Model和Service
处理Session和Cookies
我基本上认同这个观点,最多再加上OAuth验证(利用拦截器实现即可)。而真正的业务逻辑应该单独分处一层来处理,即常见的service层;
2. 在Controller层实现REST API
通过在Controller中引入xxxRepository来对外提供REST API。
详细的举例代码查看:杜琪:RESTful by Spring Boot with MySQL
3. Controller层代码容易出现的设计错误
Controller层代码容易出现两个问题:
返回值形式不统一;
没有遵循标准的API设计(例如update方法实际上应该由客户端返回更新过的完整对象,这样就可以直接调用save方法)
后续,我会参考RESTful API 设计指南进行学习,对API的设计进行自己的学习总结。