43|RESTful Web Services(7):剩下两个Sad Path场景该如何处理?
徐昊
你好,我是徐昊。今天我们继续使用 TDD 的方式实现 RESTful Web Services。
回顾架构愿景与任务列表
目前我们的架构愿景如下:
任务列表为:
ResourceServlet
将请求派分给对应的资源(Resource),并根据返回的状态、超媒体类型、内容,响应 Http 请求
使用 OutboundResponse 的 status 作为 Http Response 的状态
使用 OutboundResponse 的 headers 作为 Http Response 的 Http Headers
通过 MessageBodyWriter 将 OutboundResponse 的 GenericEntity 写回为 Body
如果找不到对应的 MessageBodyWriter,则返回 500 族错误
如果 entity 为空,则忽略 body
当资源方法抛出异常时,根据异常影响 Http 请求
如果抛出 WebApplicationException,且 response 不为 null,则使用 response 响应 Http
如果抛出的不是 WebApplicationException,则通过异常的具体类型查找 ExceptionMapper,生产 response 响应 Http 请求
RuntimeDelegate
为 MediaType 提供 HeaderDelegate
为 CacheControl 提供 HeaderDelegate
为 Cookie 提供 HeaderDelegates
为 EntityTag 提供 HeaderDelegate
为 Link 提供 HeaderDelegate
为 NewCookie 提供 HeaderDelegate
为 Date 提供 HeaderDelegate
提供 OutboundResponseBuilder
OutboundResponseBuilder
OutboundResponse
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了使用TDD的方式实现RESTful Web Services的过程。作者回顾了架构愿景和任务列表,并展示了ResourceServlet的代码。在文章中,作者提出了两个思考题,分别是如何构造测试以及在实操中是否遇到了问题。通过这些问题,读者可以思考并分享自己的想法和项目代码。整体来说,本文着重介绍了RESTful Web Services的实现过程,以及作者在实践中的思考和经验分享。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《徐昊 · TDD 项目实战 70 讲》,新⼈⾸单¥98
《徐昊 · TDD 项目实战 70 讲》,新⼈⾸单¥98
立即购买
登录 后留言
全部留言(2)
- 最新
- 精选
- aoe代码 https://github.com/wyyl1/geektime-tdd-framework/tree/72022-06-28
- 张铁林https://github.com/vfbiby/tdd-restful 小步提交2022-06-23
收起评论