成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于Spring設(shè)計并實現(xiàn)RESTful Web Services

開發(fā) 前端
從和Amazon Web Services的整合,到聚合多個數(shù)據(jù)源,RESTful網(wǎng)絡(luò)服務(wù)遵從了Roy Fielding的架構(gòu)風格的指導方針,提供了簡單、高效的web APIs,支持的API用戶數(shù)量從少量到百萬級別。在本教程中,你將會使用Spring來創(chuàng)建一個具有生產(chǎn)力的RESTful網(wǎng)絡(luò)服務(wù)。

在本教程中,你將會使用Spring來創(chuàng)建一個具有生產(chǎn)力的RESTful網(wǎng)絡(luò)服務(wù)。

為什么用RESTful網(wǎng)絡(luò)服務(wù)?

從和Amazon Web Services的整合,到聚合多個數(shù)據(jù)源,RESTful網(wǎng)絡(luò)服務(wù)遵從了Roy Fielding的架構(gòu)風格的指導方針,提供了簡單、高效的web APIs,支持的API用戶數(shù)量從少量到***別。

你要實現(xiàn)一個RESTful風格的網(wǎng)絡(luò)服務(wù),可能會是因為:

  • 你正在創(chuàng)建一個API,而客戶端需要通過網(wǎng)絡(luò)才能使用它。
  • 你想要開放你們單位的數(shù)據(jù)提供給各類客戶們通過網(wǎng)絡(luò)來使用。
  • 你需要把你的應(yīng)用和組織內(nèi)其它應(yīng)用整合起來,但是你無法控制其它應(yīng)用所用的語言、工具或架構(gòu)。

或者你只是出于好奇想看看Spring實現(xiàn)的RESTful網(wǎng)絡(luò)服務(wù)長什么樣子。不管處于什么原因,你找對地方了。

你將創(chuàng)建什么

Yummy Noodle Bar(美味面條吧)正在全球化。它想要給一系列商務(wù)聚合組織提供一個RESTful Web服務(wù),特別是Let’s Nosh(讓我們來點小吃),一個受歡迎的餐廳指南,它將大型商務(wù)引入小規(guī)模的面條吧。你將擴展Yummy Noodle Bar的內(nèi)部應(yīng)用程序,創(chuàng)建一個新的公共Web API以供提交,跟蹤,取消,以及修改訂單。

[[88131]] 

你需要什么

  • 大約每節(jié)三十分鐘。你應(yīng)該能夠在每周的午餐時間,通過整個教程,以您的方式輕松的工作(或在周末做這一切!)
  • 安裝構(gòu)建工具Gradle,版本1.6或更高版本。
  • 一份代碼拷貝(可通過git下載的ZIP文件獲得)。
  • 你選擇的IDE。Spring推薦Spring Tool Suite,這是免費下載的。

下載并運行代碼

如果你下載過基礎(chǔ)代碼,你會發(fā)現(xiàn)本教程每節(jié)都在一個單獨的文件夾,編號為1,2,3,等。也有一些代碼片段:實際上是原始的,并且每個部分有單獨的完整代碼片段。

初始的 代碼集包括:

  • 一個項目布局
  • 本教程開始創(chuàng)建的核心領(lǐng)域與事件類(上面的'Yummy Noodle Bar Application')
  • 對于這些類的一些基本的單元測試

每個部分的完整代碼在包括初始代碼的基礎(chǔ)上,再加上教程某一點的實現(xiàn)代碼。

你可以選擇從初始代碼集,或者你也可以從一個給定部分的完整代碼集開始。不是每個代碼文件都顯示在教程中,因為那會將事情搞得很慢。但重要的事情是,比如寫測試,創(chuàng)建RESTful服務(wù),以及看一些關(guān)鍵領(lǐng)域的對象。

有許多用于構(gòu)建的系統(tǒng),而本教程使用Gradle和Gradle Wrapper來進行構(gòu)建,所以如果你手頭有一份代碼的拷貝,你不需要安裝任何東西來運行這些代碼。

例如,如果你想要檢查最初的代碼集,你可以這樣做:

  1. $ git clone https://github.com/spring-guides/tut-rest.git    
  2. $ cd tut-rest/initial    
  3. $ ./gradlew clean test 

在那里,你可以瀏覽build/reports/tests 并查看所有的測試結(jié)果。

如果你想跳到第6節(jié),本教程的***一部分,來運行該web應(yīng)用及其測試,可以這樣:

  1. $ cd ../6/complete   
  2. $ ./gradlew tomcatRunWar 

在另外一個控制臺中輸入:

  1. $ ./gradlew test  

有些章節(jié)不需要運行該web應(yīng)用來執(zhí)行測試。

Yummy Noodle Bar應(yīng)用框架和核心領(lǐng)域

該應(yīng)用目前的架構(gòu)在下面這個"Life Preserver"圖中有所展示:

Life Preserver showing Core packages 

Life Preserver圖是一種工具,用來構(gòu)建那些遵從了Hexagonal Architecture原則的應(yīng)用,有時也被稱為'Ports and Adapters',它最早由Alistair Cockburn進行描述。Life Preserver圖展示了你的應(yīng)用的核心領(lǐng)域以及包圍在其周圍的整合領(lǐng)域,這些領(lǐng)域可以直接對應(yīng)到程序包或組件,你將會在整個教程中使用到它們,所以這是一種理解事物模型的很棒的方式。

打開初始項目,你將會看到上面的life preserver圖映射到了src/main/java/com/yummynoodleba目錄下的不同包中。

在核心應(yīng)用的頂層包com.yummynoodlebar.core中,包含著下列內(nèi)容:

  • domain. 組件包,只包含應(yīng)用核心領(lǐng)域概念。這些類是核心領(lǐng)域普世語言(領(lǐng)域驅(qū)動設(shè)計里的術(shù)語,建議參考鏈接里的原文 - 譯者注)的顯式表達。
  • repository. 組件,用于存儲和獲取系統(tǒng)領(lǐng)域?qū)ο蟮漠斍盃顟B(tài)。
  • event. 組件,包含領(lǐng)域可以接收和處理的事件。
  • service. 組件,用于接收到事件時,處理可執(zhí)行的操作。

花些時間讓你自己熟悉每個包里的組件。對核心領(lǐng)域組件的測試在項目的src/test里。這些測試會告訴你如何使用這些組件。

RESTful web服務(wù)領(lǐng)域

RESTful web服務(wù)能夠把你的應(yīng)用和所有可能用到你服務(wù)的客戶端集成在一起。因此,RESTfulF服務(wù)存在于他們自己的集成領(lǐng)域,在你的應(yīng)用程序核心之外,正如下面的圖一樣,RESTfulF能夠服務(wù)于你的應(yīng)用程序的整個生命周期中。

Life Preserver showing Core and REST domain 

把你的應(yīng)用程序和外面的世界整合在一起,需要考慮下面的一些設(shè)計和實現(xiàn)約束:

  • RESTful服務(wù)API是你的關(guān)注的地方;核心應(yīng)用程序結(jié)構(gòu)不應(yīng)影響API的設(shè)計。
  • 組件實現(xiàn)RESTful服務(wù)需要提高速度,這樣更適合更多的用戶依賴你的服務(wù)。
  • 你的RESTful服務(wù)組件不應(yīng)該包含任何核心應(yīng)用程序邏輯,但是他們需要和你的應(yīng)用程序核心領(lǐng)域組件進行合作,這樣更方便協(xié)調(diào)必要的功能服務(wù)接口

英文原文:Designing and Implementing RESTful Web Services with Spring

譯文鏈接:http://www.oschina.net/translate/designing-and-implementing-restful-web-services-with-spring

責任編輯:林師授 來源: OSCHINA編譯
相關(guān)推薦

2011-05-25 17:10:39

ibmdw

2009-06-18 09:29:44

Spring Web

2011-06-10 17:10:32

Qt GUI 瀏覽器

2024-06-27 10:48:48

2022-04-15 08:25:00

SpringjQuery客戶端

2023-10-23 10:43:24

SpringRestful風格

2013-11-11 11:10:41

Amazon Web AWS云服務(wù)

2009-08-12 17:44:30

C# Web Serv

2009-03-03 10:06:00

IBMJavaOSGi

2009-08-27 10:52:36

ibmdw云計算

2009-01-03 14:32:20

ibmdwWebServicesEclipse

2013-11-18 09:49:00

亞馬遜Web ServiceCloudTrail

2009-07-24 16:05:05

調(diào)用Web ServiASP.NET

2013-03-12 09:50:45

GoRESTful Web

2010-10-26 09:23:03

Web Service

2011-07-28 13:51:31

Master DataWeb服務(wù)

2009-08-24 17:34:14

C#創(chuàng)建XML Web

2009-12-23 09:50:45

JAX-RSJerseyRESTful

2013-06-13 09:21:31

RESTful APIRESTfulAPI

2019-01-09 09:34:22

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品三级在线观看 | 欧美精品久久久 | 成人小视频在线免费观看 | 欧美日韩视频在线第一区 | 成人久久 | 看特级黄色片 | 天天综合网天天综合色 | 国产精品九九 | 欧美一区二区三区在线视频 | 午夜精品一区二区三区三上悠亚 | 国产精品视频在线观看 | 亚洲国产精品人人爽夜夜爽 | 99精品一区二区 | 97伦理电影 | 国产精品久久精品 | 国产欧美一区二区三区在线看 | 久草福利 | 日本在线一二 | 精品国产乱码久久久久久牛牛 | 免费成人午夜 | 久久久国产精品视频 | 国产精品精品久久久 | 婷婷福利视频导航 | 激情在线视频 | 国产专区视频 | 天堂色网| 99精品国产在热久久 | 久久国产一区 | 欧美一级免费看 | 亚洲视频在线观看一区二区三区 | 日韩精品在线一区 | 国产在线一区二区三区 | 国精产品一区一区三区免费完 | 久久久精品影院 | 国产精品一区在线观看你懂的 | 精品久久久久久 | 五月天天色 | 在线免费观看亚洲 | 黄色大片在线 | 欧美一区二区三区 | 一区二区三区亚洲视频 |