在本教程中,您将使用Spring创建一个高效的RESTfulWeb服务。为什么要使用RESTfulWeb服务?从与AmazonWebServices集成到聚合多个数据源,RESTfulWeb服务遵循RoyFielding的架构风格指南,并提供简单高效的WebAPI。支持的API用户数量从少量到最少。你想实现一个RESTfulweb服务,可能是因为:你正在创建一个API,客户端需要通过网络才能使用它。您想要开放您组织的数据并通过Internet将其提供给各种客户。您需要将您的应用程序与组织中的其他应用程序集成,但您无法控制其他应用程序使用的语言、工具或架构。或者您可能只是想看看Spring的RESTfulWeb服务实现是什么样的。不管是什么原因,你来对地方了。您将创建的YummyNoodleBar正在走向全球。它希望为一系列业务聚合器提供RESTfulWeb服务,特别是Let'sNosh(让我们吃点零食),这是一个将大企业带到小面馆的流行餐厅指南。您将扩展YummyNoodleBar的内部应用程序以创建一个新的公共WebAPI,用于提交、跟踪、取消和修改订单。您需要什么每个会话大约三十分钟。您应该能够在每周午餐时间完成整个教程(或者全部在周末完成!),并轻松安装构建工具Gradle,版本1.6或更高版本。代码的副本(可通过git或作为下载的ZIP文件获得)。您选择的集成开发环境。Spring推荐SpringToolSuite,可以免费下载。下载并运行代码如果你下载了基本代码,你会发现本教程的每一节都在一个单独的文件夹中,编号为1、2、3等。还有一些代码片段:实际上是原始的,并且有单独的每个部分的完整代码片段。初始代码集包括:项目布局在本教程开始时创建的核心域和事件类(上面的“YummyNoodleBar应用程序”)这些类的一些基本单元测试每个部分的完整代码包含在初始代码中base,再加上教程中某处的实现代码。您可以选择从初始代码集开始,也可以从给定部分的完整代码集开始。本教程并未显示每个代码文件,因为那样会减慢速度。但重要的事情是编写测试、创建RESTful服务以及查看一些关键域对象。构建系统有很多,本教程使用Gradle和GradleWrapper进行构建,因此如果您手头有代码副本,则无需安装任何东西即可运行代码。例如,如果你想查看初始代码集,你可以这样做:$gitclonehttps://github.com/spring-guides/tut-rest.git$cdtut-rest/initial$./gradlewcleantest在那里,您可以浏览构建/报告/测试并查看所有测试结果。如果您想跳到第6节,即本教程的最后一部分,运行Web应用程序及其测试,您可以这样做:$cd../6/complete$./gradlewtomcatRunWar在另一个控制台中输入:$./gradlewtest有些章节不需要运行web应用程序来执行测试。YummyNoodleBar应用程序框架和核心区域应用程序的当前架构如下面的“LifePreserver”图所示:Adapters',它首先由AlistairCockburn描述。LifePreserver图显示了应用程序的核心域和围绕它的集成域。这些域可以直接映射到您将在整个教程中使用的包或组件,因此这是一种理解事物的好方法的模型。打开初始项目,你会看到上面的救生圈图映射到src/main/java/com/yummynoodleba目录下的不同包。核心应用的顶层包com.yummynoodlebar.core包含以下内容:domain。组件包只包含应用程序核心域的概念。这些类是核心领域通用语言的显式表达(领域驱动设计中的术语,建议参考链接中的原文——译者注)。存储库。用于存储和检索系统域对象的当前状态的组件。事件。包含Realm可以接收和处理的事件的组件。服务。组件用于在接收到事件时处理可执行操作。花一些时间熟悉每个包中的组件。核心域组件的测试在项目的src/test中。这些测试将向您展示如何使用这些组件。RESTfulweb服务领域RESTfulweb服务可以将您的应用程序与所有可能使用您的服务的客户端集成。因此,RESTfulF服务存在于它们自己的集成域中,在您的应用程序的核心之外,如下图所示,RESTfulF可以服务于您的应用程序的整个生命周期。将您的应用程序与外部世界集成需要考虑以下设计和实现约束:RESTful服务API是您应该关注的地方;核心应用程序结构不应影响API的设计。组件需要提高速度来实现RESTful服务,更适合更多的用户依赖你的服务。你的RESTful服务组件不应包含任何核心应用逻辑,但它们需要与你的应用核心领域组件进行协作,这样更容易协调必要的功能服务接口英文原文:DesigningandImplementingRESTfulWebServiceswithSpring翻译链接:http://www.oschina.net/translate/designing-and-implementing-restful-web-services-with-spring
