标签:
在本教程中,你将会使用Spring来创建一个具有生产力的RESTful网络服务。
为什么用RESTful网络服务?
从和Amazon Web Services的整合,到聚合多个数据源,RESTful网络服务遵从了Roy Fielding的架构风格的指导方针,提供了简单、高效的web APIs,支持的API用户数量从少量到百万级别。
你要实现一个RESTful风格的网络服务,可能会是因为:
或者你只是出于好奇想看看Spring实现的RESTful网络服务长什么样子。不管处于什么原因,你找对地方了。
你将创建什么
Yummy Noodle Bar(美味面条吧)正在全球化。它想要给一系列商务聚合组织提供一个RESTful Web服务,特别是Let’s Nosh(让我们来点小吃),一个受欢迎的餐厅指南,它将大型商务引入小规模的面条吧。你将扩展Yummy Noodle Bar的内部应用程序,创建一个新的公共Web API以供提交,跟踪,取消,以及修改订单。
你需要什么
下载并运行代码
如果你下载过基础代码,你会发现本教程每节都在一个单独的文件夹,编号为1,2,3,等。也有一些代码片段:实际上是原始的,并且每个部分有单独的完整代码片段。
初始的 代码集包括:
每个部分的完整代码在包括初始代码的基础上,再加上教程某一点的实现代码。
你可以选择从初始代码集,或者你也可以从一个给定部分的完整代码集开始。不是每个代码文件都显示在教程中,因为那会将事情搞得很慢。但重要的事情是,比如写测试,创建RESTful服务,以及看一些关键领域的对象。
有许多用于构建的系统,而本教程使用Gradle和Gradle Wrapper来进行构建,所以如果你手头有一份代码的拷贝,你不需要安装任何东西来运行这些代码。
例如,如果你想要检查最初的代码集,你可以这样做:
在那里,你可以浏览build/reports/tests 并查看所有的测试结果。
如果你想跳到第6节,本教程的最后一部分,来运行该web应用及其测试,可以这样:
在另外一个控制台中输入:
有些章节不需要运行该web应用来执行测试。
Yummy Noodle Bar应用框架和核心领域
该应用目前的架构在下面这个"Life Preserver"图中有所展示:
Life Preserver图是一种工具,用来构建那些遵从了Hexagonal Architecture原则的应用,有时也被称为‘Ports and Adapters‘,它最早由Alistair Cockburn进行描述。Life Preserver图展示了你的应用的核心领域以及包围在其周围的整合领域,这些领域可以直接对应到程序包或组件,你将会在整个教程中使用到它们,所以这是一种理解事物模型的很棒的方式。
打开初始项目,你将会看到上面的life preserver图映射到了src/main/java/com/yummynoodleba目录下的不同包中。
在核心应用的顶层包com.yummynoodlebar.core中,包含着下列内容:
花些时间让你自己熟悉每个包里的组件。对核心领域组件的测试在项目的src/test里。这些测试会告诉你如何使用这些组件。
RESTful web服务领域
RESTful web服务能够把你的应用和所有可能用到你服务的客户端集成在一起。因此,RESTfulF服务存在于他们自己的集成领域,在你的应用程序核心之外,正如下面的图一样,RESTfulF能够服务于你的应用程序的整个生命周期中。
把你的应用程序和外面的世界整合在一起,需要考虑下面的一些设计和实现约束:
英文原文:Designing and Implementing RESTful Web Services with Spring
译文链接:http://www.oschina.net/translate/designing-and-implementing-restful-web-services-with-spring
基于Spring设计并实现RESTful Web Services(转)
标签:
原文地址:http://www.cnblogs.com/Rozdy/p/4232245.html