fujohnwang / unveil-springboot-feedbacks

《SpringBoot揭秘》一书的勘误收录以及交流等售后项目
53 stars 16 forks source link

关于WebApiResponse<T>的问题 #8

Closed epiphyllum closed 8 years ago

epiphyllum commented 8 years ago

我看你在书中描述了WebApiResponse的设计, 也提到了应该要“不干扰API开发者", 提出应该在框架层面解决。

我想问的是: 如果在框架层面解决, 那这里的code, error是如何来的? 不知道你是如何考虑这个问题的。

controller里的方法抛出了异常, WebApiResponse是如何生成的?

epiphyllum commented 8 years ago

你书中也提到了WebMvcConfigureAdapter.extendMessagerConverters(List<HttpMessageConverter<?>> conterviers) 中 converter.canWrite(classz, media)的API接口能力不足, 只能通过override MappingJackson2HttpMessageConverter。 但是又没有提供如何override. 我相信, 这是大家比较关心的吧?

fujohnwang commented 8 years ago

我写书从来不给答案, 否则,读者就没有思考了。

code, error从哪里来,自己完全可从不同层面考虑,比如annotation, 比如直接set; controller抛出异常,你可以提供helper方法简化异常到WebApiResponse的转换, 充其量只是一个try-catch block罢了, 没有什么神秘可言啊, 更重要的是API的设计对用户足够简单易用;

怎么override要自己去看代码, 框架自身在设计的时候有自己的设计哲学,如果自己有不一样的需求和想法,那就需要根据情况做变通,只要你在这个框架下,就需要收到约束; 但说回来, 如果框架作者可以在开始就想得扩展性更好些,场景更广些, 那扩展起来也就比较自然,否则就得有些hack方式, 但会带来其它问题, 完全是一个权衡。