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

40|RESTful Web Services(4):在当前架构愿景下,要如何分解任务?

你好,我是徐昊。今天我们继续使用 TDD 的方式实现 RESTful Web Services。
现在请回想一下 TDD 的流程(参看第 11 讲):
目前的架构愿景如下:

将需求分解为任务列表

JAX-RS 的需求非常庞杂,根据前面我们介绍过的部分(参看第 36 讲),主要的功能有这样几个方面:
将请求派分给对应的资源(Resource),并根据返回的状态、超媒体类型、内容,响应 Http 请求。
在处理请求派分时,可以支持多级子资源(Sub-Resource)。
在处理请求派分时,可以根据客户端提供的超媒体类型,选择对应的资源方法(Resource Method)。
在处理请求派分时,可以根据客户端提供的 Http 方法,选择对应的资源方法。
资源方法可以返回 Java 对象,由 Runtime 自行推断正确的返回状态。
资源方法可以不明确指定返回的超媒体类型,由 Runtime 自行推断。比如资源方法标注了 Produces,那么就使用标注提供的超媒体类型等。
可通过扩展点 MessageBodyWriter 处理不同类型的返回内容。
当资源方法抛出异常时,根据异常影响 Http 请求。
可通过扩展点 ExceptionMapper 处理不同类型的异常。
资源方法可按照期望的类型,访问 Http 请求的内容。
可通过扩展点 MessageBodyReader 处理不同类型的请求内容。
资源对象和资源方法可接受环境组件的注入。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了在当前架构愿景下,如何分解任务来实现RESTful Web Services。作者提到了根据架构愿景将功能点关联到不同的功能上下文,并且详细列出了任务列表。文章还提到了采用伦敦学派时的实现顺序,并给出了具体的任务细化列表。接着,作者提到了进入TDD的红/绿循环,并给出了相应的build.grade.kts文件。最后,作者提出了两个思考题,鼓励读者在留言区分享自己的想法和项目代码链接。整体来说,本文通过具体的任务分解和实现流程,帮助读者了解了在当前架构愿景下,如何使用TDD的方式实现RESTful Web Services。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《徐昊 · TDD 项目实战 70 讲》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 枫中的刀剑
    缺少两个依赖 implementation("org.slf4j:slf4j-api:2.0.0-alpha7") implementation("org.slf4j:slf4j-simple:2.0.0-alpha7") 不然在视频最后那几个因缺少stub的报错无法出现。
    2022-06-18
    3
  • aoe
    你是怎么理解任务分解的? 将抽象的任务不断具体化,直到可以编码实现。 例如:用户登录是一个抽象的任务。 第一步可以分解为通过手机短信、微信、微博登录; 第二步再对上面步骤中的每个任务进行分解,例如:手机短信登陆需要获得手机号码、生成验证码、发送验证码 以此类推直到消除抽象,实现愿望 代码 https://github.com/wyyl1/geektime-tdd-framework/tree/4
    2022-06-17
    1
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部