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

48|RESTful Web Services(12):如何调整接口和架构愿景?

你好,我是徐昊。今天我们继续使用 TDD 的方式实现 RESTful Web Services。

回顾架构愿景与任务列表

目前我们 Spike 得到的代码如下:
static class Router implements ResourceRouter {
private Map<Pattern, Class<?>> routerTable = new HashMap<>();
public Router(Class<Users> rootResource) {
Path path = rootResource.getAnnotation(Path.class);
routerTable.put(Pattern.compile(path.value() + "(/.*)?"), rootResource);
}
@Override
public OutboundResponse dispatch(HttpServletRequest request, ResourceContext resourceContext) {
String path = request.getServletPath();
Pattern matched = routerTable.keySet().stream().filter(pattern -> pattern.matcher(path).matches()).findFirst().get();
Class<?> resource = routerTable.get(matched);
Method method = Arrays.stream(resource.getMethods()).filter(m -> m.isAnnotationPresent(GET.class)).findFirst().get();
Object object = resourceContext.getResource(resource);
try {
Object result = method.invoke(object);
GenericEntity entity = new GenericEntity(result, method.getGenericReturnType());
return (OutboundResponse) Response.ok(entity).build();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
构想中的架构愿景是这样的:

视频演示

那么进入今天的环节:
00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00

    思考题

    请 Spike Sub-Resource Locator。
    欢迎把你的想法分享在留言区,也欢迎把你的项目代码分享出来。相信经过你的思考与实操,学习效果会更好!
    确认放弃笔记?
    放弃后所记笔记将不保留。
    新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
    批量公开的笔记不会为你同步至部落
    公开
    同步至部落
    取消
    完成
    0/2000
    荧光笔
    直线
    曲线
    笔记
    复制
    AI
    • 深入了解
    • 翻译
      • 英语
      • 中文简体
      • 中文繁体
      • 法语
      • 德语
      • 日语
      • 韩语
      • 俄语
      • 西班牙语
      • 阿拉伯语
    • 解释
    • 总结

    本文介绍了徐八叉关于RESTful Web Services的第12篇文章,重点讨论了如何调整接口和架构愿景。文章首先回顾了之前的架构愿景和任务列表,然后展示了使用TDD的方式实现RESTful Web Services的代码。作者提出了构想中的架构愿景,并通过视频演示展示了相关内容。最后,作者提出了思考题,邀请读者分享他们的想法和项目代码。整篇文章围绕着RESTful Web Services的实现和架构愿景展开,通过代码和思考题引导读者深入思考和实践,有助于读者更好地理解和应用相关技术。

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

    全部留言(1)

    • 最新
    • 精选
    • 忘川
      spike 其实是不断让组件 进行磨合 然后发现其中 缺失的部分,然后针对缺失的属性 站在整个设计的角度,考虑怎么合理分配. 感觉出来,经典模式更多是 针对测试用例的重构,然后得出设计.伦敦学派,更多是在spike过程中,根据缺失,进行设计的重构,让组件的边界和关系,在没有细节改动成本最小的时候,及时弥补漏洞.
      2023-01-07归属地:上海
      2
    收起评论
    大纲
    固定大纲
    回顾架构愿景与任务列表
    视频演示
    思考题
    显示
    设置
    留言
    1
    收藏
    沉浸
    阅读
    分享
    手机端
    快捷键
    回顶部