徐昊 · TDD 项目实战 70 讲
徐昊
Thoughtworks 中国区 CTO
18159 人已学习
新⼈⾸单¥98
登录后,你可以任选4讲全文学习
课程目录
已完结/共 88 讲
实战项目二|RESTful开发框架:依赖注入容器 (24讲)
实战项目三|RESTful Web Services (44讲)
徐昊 · TDD 项目实战 70 讲
15
15
1.0x
00:00/00:00
登录|注册

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
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • aoe
    代码 https://github.com/wyyl1/geektime-tdd-framework/tree/7
    2022-06-28
  • 张铁林
    https://github.com/vfbiby/tdd-restful 小步提交
    2022-06-23
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部