lin-cms-spring-boot
lin-cms-spring-boot copied to clipboard
关于分页接口中参数的定义,建议封装成DTO
例如如下代码: https://github.com/TaleLin/lin-cms-spring-boot/blob/2ff4bf8bf1a2d347af3a1f70416a121481a45add/src/main/java/io/github/talelin/latticy/controller/cms/AdminController.java#L72-L78
我们的项目中的示例代码,但凡碰到分页的相关的传参,都是采用这样的方式定义,将分页的查询参数,定义在了方法参数签名中的,这样虽然比较直观,但无疑增加了代码量。
我们可以封装一个基础分页DTO(例如BasePageDTO
),在 DTO 中定义这些属性。如果有额外的参数,可以继承该 DTO。这样既减少了代码量,也提高了代码的封装性。
Get请求参数使用bean接收时会有个问题,此时的参数绑定并不经过jackson,需要增加BindException的异常处理,并且不能自动从snake_case转camelCase,我后来是用一个自定义的ServletModelAttributeMethodProcessor和ServletRequestDataBinder解决的参数绑定。
Get请求参数使用bean接收时会有个问题,此时的参数绑定并不经过jackson,需要增加BindException的异常处理,并且不能自动从snake_case转camelCase,我后来是用一个自定义的ServletModelAttributeMethodProcessor和ServletRequestDataBinder解决的参数绑定。
欢迎提交pr来贡献你的代码!😸