色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

構建RESTful Web服務的過程

「Spring」認證安全架構 ? 來源:「Spring」認證安全架構 ? 作者:「Spring」認證安全 ? 2022-09-06 15:47 ? 次閱讀

本指南將引導您完成使用 Spring 創建“Hello, World”RESTful Web 服務的過程。

你將建造什么

您將構建一個接受 HTTP GET 請求的服務
http://localhost:8080/greeting

它將以 JSON 表示的問候進行響應,如以下清單所示:

{"id":1,"content":"Hello, World!"}復制

您可以在查詢字符串中使用可選name參數自定義問候語,如以下清單所示:

http://localhost:8080/greeting?name=User復制

name參數值覆蓋默認值World并反映在響應中,如以下清單所示:

{"id":1,"content":"Hello, User!"}復制

你需要什么

  • 約15分鐘
  • 最喜歡的文本編輯器或 IDE
  • JDK 1.8或更高版本
  • Gradle 4+或Maven 3.2+
  • 您還可以將代碼直接導入 IDE:
    • 彈簧工具套件 (STS)
    • IntelliJ IDEA

如何完成本指南

像大多數 Spring入門指南一樣,您可以從頭開始并完成每個步驟,也可以繞過您已經熟悉的基本設置步驟。無論哪種方式,您最終都會得到工作代碼。

從頭開始,請繼續從 Spring Initializr 開始。

跳過基礎知識,請執行以下操作:

  • 下載并解壓縮本指南的源存儲庫,或使用Git克隆它:git clone https://github.com/spring-guides/gs-rest-service.git
  • 光盤進入gs-rest-service/initial
  • 繼續創建資源表示類。

完成后,您可以對照中的代碼檢查結果gs-rest-service/complete

從 Spring Initializr 開始

您可以使用這個預先初始化的項目并單擊 Generate 下載 ZIP 文件。此項目配置為適合本教程中的示例。

手動初始化項目:

  1. 導航到https://start.spring.io。該服務提取應用程序所需的所有依賴項,并為您完成大部分設置。
  2. 選擇 Gradle 或 Maven 以及您要使用的語言。本指南假定您選擇了 Java
  3. 單擊Dependencies并選擇Spring Web
  4. 單擊生成
  5. 下載生成的 ZIP 文件,該文件是根據您的選擇配置的 Web 應用程序的存檔。

如果您的 IDE 具有 Spring Initializr 集成,您可以從您的 IDE 完成此過程。

你也可以從 Github 上 fork 項目并在你的 IDE 或其他編輯器中打開它。

創建資源表示類

現在您已經設置了項目和構建系統,您可以創建您的系統 Web 服務。

從考慮服務交互開始這個過程。

該服務將處理對 的GET請求/greeting,可以選擇name在查詢字符串中使用參數。該GET請求應200 OK在表示問候的正文中返回帶有 JSON 的響應。它應該類似于以下輸出:

{
    "id": 1,
    "content": "Hello, World!"
}復制

id字段是問候語的唯一標識符,是問候語content的文本表示。

要對問候表示建模,請創建一個資源表示類。為此,請提供一個普通的方法 Java 對象,其中包含用于idcontent數據的字段、構造函數和訪問器,如以下清單(來自
src/main/java/com/example/restservice/Greeting.java)所示:

package com.example.restservice;

public class Greeting {

	private final long id;
	private final String content;

	public Greeting(long id, String content) {
		this.id = id;
		this.content = content;
	}

	public long getId() {
		return id;
	}

	public String getContent() {
		return content;
	}
}

此應用程序使用Jackson JSON庫將類型的實例自動編組Greeting為 JSON。網絡啟動器默認包含 Jackson。

創建資源控制器

在 Spring 構建 RESTful Web 服務的方法中,HTTP 請求由控制器處理。這些組件由@RestController注釋標識,GreetingController下面的清單 (from )通過返回類的新實例來
src/main/java/com/example/restservice/GreetingController.java處理GET請求:/greetingGreeting

package com.example.restservice;

import java.util.concurrent.atomic.AtomicLong;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

	private static final String template = "Hello, %s!";
	private final AtomicLong counter = new AtomicLong();

	@GetMapping("/greeting")
	public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
		return new Greeting(counter.incrementAndGet(), String.format(template, name));
	}
}復制

這個控制器簡潔明了,但引擎蓋下有很多事情要做。我們一步一步分解。

@GetMapping注釋確保 HTTP GET 請求/greeting映射到greeting()方法。

有其他 HTTP 動詞的伴隨注釋(例如@PostMappingPOST)。還有一個@RequestMapping它們都源自的注釋,并且可以用作同義詞(例如@RequestMapping(method=GET))。

@RequestParam將查詢字符串參數的值綁定name到方法的name參數中greeting()。如果name請求中沒有參數,則使用defaultValueof World

方法體的實現創建并返回一個新Greeting對象,該對象具有idcontent基于下一個值的屬性,并使用 greetingcounter格式化給定的格式。nametemplate

傳統 MVC 控制器和前面顯示的 RESTful Web 服務控制器之間的一個關鍵區別是 HTTP 響應主體的創建方式。這個 RESTful Web 服務控制器不是依靠視圖技術來執行服務器端將問候數據呈現為 HTML,而是填充并返回一個Greeting對象。對象數據將作為 JSON 直接寫入 HTTP 響應。

此代碼使用 Spring@RestController注釋,它將類標記為控制器,其中每個方法都返回域對象而不是視圖。它是同時包含@Controller和的簡寫@ResponseBody

Greeting對象必須轉換為 JSON。感謝 Spring 的 HTTP 消息轉換器支持,您無需手動進行此轉換。因為Jackson 2在類路徑上,所以會自動選擇 Spring
MappingJackson2HttpMessageConverterGreeting實例轉換為 JSON。

@SpringBootApplication是一個方便的注釋,它添加了以下所有內容:

  • @Configuration: 將類標記為應用程序上下文的 bean 定義源。
  • @EnableAutoConfiguration:告訴 Spring Boot 根據類路徑設置、其他 bean 和各種屬性設置開始添加 bean。例如,如果spring-webmvc位于類路徑上,則此注釋將應用程序標記為 Web 應用程序并激活關鍵行為,例如設置DispatcherServlet.
  • @ComponentScan: 告訴 Spring 在包中查找其他組件、配置和服務com/example,讓它找到控制器。

main()方法使用 Spring Boot 的SpringApplication.run()方法來啟動應用程序。您是否注意到沒有一行 XML?也沒有web.xml文件。這個 Web 應用程序是 100% 純 Java,您不必處理任何管道或基礎設施的配置。

構建一個可執行的 JAR

您可以使用 Gradle 或 Maven 從命令行運行應用程序。您還可以構建一個包含所有必要依賴項、類和資源的單個可執行 JAR 文件并運行它。構建可執行 jar 可以在整個開發生命周期、跨不同環境等中輕松地作為應用程序交付、版本化和部署服務。

如果您使用 Gradle,則可以使用./gradlew bootRun. 或者,您可以使用構建 JAR 文件./gradlew build,然后運行 ?JAR 文件,如下所示:

java -jar build/libs/gs-rest-service-0.1.0.jar

如果您使用 Maven,則可以使用./mvnw spring-boot:run. 或者,您可以使用構建 JAR 文件,./mvnw clean package然后運行該 JAR 文件,如下所示:

java -jar 目標/gs-rest-service-0.1.0.jar

此處描述的步驟創建了一個可運行的 JAR。您還可以構建經典的 WAR 文件。

顯示記錄輸出。該服務應在幾秒鐘內啟動并運行。

測試服務

現在服務已經啟動,訪問
http://localhost:8080/greeting,您應該會看到:

{"id":1,"content":"Hello, World!"}復制

通過訪問提供name查詢字符串參數
http://localhost:8080/greeting?name=Usercontent請注意屬性的值如何從Hello, World!變為Hello, User!,如以下清單所示:

{"id":2,"content":"Hello, User!"}復制

這一變化表明,@RequestParam安排在GreetingController按預期工作。該name參數已被賦予默認值,World但可以通過查詢字符串顯式覆蓋。

還要注意id屬性是如何從1變為 的2。這證明您正在GreetingController跨多個請求處理同一個實例,并且其counter字段在每次調用時都按預期遞增。

概括

恭喜!您剛剛使用 Spring 開發了一個 RESTful Web 服務。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1262

    瀏覽量

    69441
  • spring
    +關注

    關注

    0

    文章

    340

    瀏覽量

    14338
  • Restful
    +關注

    關注

    0

    文章

    11

    瀏覽量

    3532
收藏 人收藏

    評論

    相關推薦

    請問LabVIEW通過無線WiFi采集數據 基于restful

    本帖最后由 eehome 于 2013-1-5 09:47 編輯 求助,有沒有兄弟做過相關的項目啊,labview編寫一個程序作為一個web service,基于restful。 需要將采集到
    發表于 03-22 18:08

    編寫restful

    求助,有沒有兄弟做過相關的項目啊,現在寫了一個程序作為一個web service,基于restful。 需要將采集到的數據經過wifi傳輸,數據傳輸想用到restful。有沒有推薦的自帶的re
    發表于 03-22 18:12

    基于ARM和Linux的嵌入式Web服務器的構建及應用

    摘要:本文主要研究了基于ARM和Linux的嵌入式Web服務器的構建及應用.隨著互聯網的飛速發展,越來越多的信息化產品需要接入互聯網并通過Web頁面進行遠程訪問和控制,嵌入式
    發表于 11-05 06:07

    如何在ARM上構建一個web服務

    本人現在在做ARM上構建一個web服務器,就是將網頁放在這個服務器上,然后接入internet可以通過PC機上網訪問即可。用的是C#編程,實際實現上還是有些模糊,希望有心人能教教俺,最
    發表于 10-28 10:55

    在4.3.1版的restful_server示例中找不到npm是怎么回事?

    /../front/web-demo/dist doesn't exit.Please run 'npm run build' inC:/esp-431/ws431/restful_server/main
    發表于 02-17 07:31

    基于TLA的Web服務組合研究

    隨著以Web服務為基礎的面向服務的體系結構的發展,如何有效地組合自治的、分布的、不同功能的Web服務
    發表于 11-10 16:28 ?22次下載

    基于.NET的XML Web服務構建

    以一個ShoppingAssistant案例的ASP.NET Web服務為例,構建新的基于事件的編程模型,利用XmlSerializer類的XML串行化功能,將對象的內容串行化到XML文件中,在
    發表于 03-21 10:46 ?16次下載

    構建實戰:Nginx+IIS構筑Web服務器集群負載均衡

    構建實戰:Nginx+IIS構筑Web服務器集群負載均衡
    發表于 09-05 10:56 ?4次下載
    <b class='flag-5'>構建</b>實戰:Nginx+IIS構筑<b class='flag-5'>Web</b><b class='flag-5'>服務</b>器集群負載均衡

    Web服務推薦SOA系統

    為解決Web服務決策過程中新增信息多且信息不精確的問題,提出一種基于Web服務推薦的面向服務體系
    發表于 02-24 14:59 ?0次下載
    <b class='flag-5'>Web</b><b class='flag-5'>服務</b>推薦SOA系統

    Web服務組合匹配框架研究

    在現有服務發現方法中,單一考慮原子服務服務組合的方式難以滿足用戶日益增長的需求。針對該問題,設計一個基于模型轉換的Web服務匹配框架。在
    發表于 03-05 13:35 ?0次下載
    <b class='flag-5'>Web</b><b class='flag-5'>服務</b>組合匹配框架研究

    ASP NET MVC和WEB與API的知識點總結

     一、理解WEB API:提供基于RESTful架構的WEB服務,通過HTTP請求方法(GET, PUT, POST, DELETE)映射到服務
    發表于 11-27 16:43 ?13次下載
    ASP NET MVC和<b class='flag-5'>WEB</b>與API的知識點總結

    基于Web云端應用服務構建等的齒輪云測量終端系統

    基于Web云端應用服務構建等的齒輪云測量終端系統
    發表于 06-30 11:39 ?9次下載

    如何使用Spring構建REST服務(一)

    關于 REST 如何適應微服務世界還有一個更大的討論,但是——對于本教程——讓我們看看構建 RESTful 服務
    的頭像 發表于 07-28 15:59 ?904次閱讀

    如何使用Spring構建REST服務(三)

    到目前為止,您擁有一個基于 Web 服務來處理涉及員工數據的核心操作。但這還不足以讓事情變得“RESTful”。
    的頭像 發表于 07-28 16:01 ?834次閱讀

    使用RESTful Web服務過程

    本指南將引導您完成創建使用#spring# #spring認證# RESTful Web 服務的應用程序的過程
    的頭像 發表于 09-06 15:47 ?705次閱讀
    主站蜘蛛池模板: 亚洲欧洲日韩视频在钱| 無码一区中文字幕少妇熟女网站 | 成人毛片18岁女人毛片免费看| 草莓视频在线观看完整高清免费| 成人免费看片45分钟| 国产精品无码人妻99999| 蝴蝶中文娱乐| 久久两性视频| 欧美日韩高清一区二区三区| 视频一区亚洲中文字幕| 亚洲国产精品第一影院在线观看| 亚洲中文字幕在线精品| 最近更新2019中文字幕国语| 爱暖暖1000部免费| 国产三区在线成人AV| 老太脱裤子让老头玩xxxxx| 欧美性最猛xxxx在线观看视频| 婷婷四房播客五月天| 亚洲天堂999| av无码在线日本天堂| 国产女合集第六部| 老王午夜69精品影院| 人人澡人人擦人人免费| 亚洲国产欧美日本大妈| 91精品国产91| 国产精品久久高潮呻吟无码| 久久大胆视频| 日本肉肉口番工全彩动漫| 亚洲精品偷拍影视在线观看| 99久久精品免费看国产一区二区三区 | 青青草 久久久| 性欧美videosex18嫩| 4hu四虎免费影院www| 福利社的阿姨| 玖玖爱精品视频| 婷婷亚洲五月色综合久久| 在线播放免费人成视频| 丰满老熟女白浆直流| 老司机无码精品A| 午夜理论片YY4399影院| ass女人下部欣赏|