国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring——RESTful Web服務(wù)

這篇具有很好參考價(jià)值的文章主要介紹了Spring——RESTful Web服務(wù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

RESTful Web 服務(wù)介紹

本節(jié)我們將開發(fā)一個(gè)簡單的 RESTful Web 服務(wù)。

RESTful Web 服務(wù)與傳統(tǒng)的 MVC 開發(fā)一個(gè)關(guān)鍵區(qū)別是返回給客戶端的內(nèi)容的創(chuàng)建方式:傳統(tǒng)的 MVC 模式開發(fā)會直接返回給客戶端一個(gè)視圖,但是 RESTful Web 服務(wù)一般會將返回的數(shù)據(jù)以 JSON 的形式返回,這也就是現(xiàn)在所推崇的前后端分離開發(fā)。

為了節(jié)省時(shí)間,本篇內(nèi)容的代碼是在 Spring Boot 版 Hello World & Spring Boot 項(xiàng)目結(jié)構(gòu)分析 基礎(chǔ)上進(jìn)行開發(fā)的。

內(nèi)容概覽

通過下面的內(nèi)容你將學(xué)習(xí)到下面這些東西:

  1. Lombok 優(yōu)化代碼利器
  2. @RestController
  3. @RequestParam以及@Pathvairable
  4. @RequestMapping、 @GetMapping
  5. Responsity

下載 Lombok 優(yōu)化代碼利器

因?yàn)楸敬伍_發(fā)用到了 Lombok 這個(gè)簡化 Java 代碼的工具,所以我們需要在 pom.xml 中添加相關(guān)依賴。如果對 Lombok 不熟悉的話,我強(qiáng)烈建議你去了解一下,可以參考這篇文章:《十分鐘搞懂Java效率工具Lombok使用與原理》

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.10</version>
		</dependency>

并且你需要下載 IDEA 中支持 lombok 的插件:

Spring——RESTful Web服務(wù),java筆記整理,spring,restful,前端

RESTful Web 服務(wù)開發(fā)

假如我們有一個(gè)書架,上面放了很多書。為此,我們需要新建一個(gè) Book 實(shí)體類。

com.example.helloworld.entity

/**
 * @author shuang.kou
 */
@Data
public class Book {
    private String name;
    private String description;
}

我們還需要一個(gè)控制器對書架上進(jìn)行添加、查找以及查看。為此,我們需要新建一個(gè) BookController 。

import com.example.helloworld.entity.Book;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@RestController
@RequestMapping("/api")
public class BookController {

    private List<Book> books = new ArrayList<>();

    @PostMapping("/book")
    public ResponseEntity<List<Book>> addBook(@RequestBody Book book) {
        books.add(book);
        return ResponseEntity.ok(books);
    }

    @DeleteMapping("/book/{id}")
    public ResponseEntity deleteBookById(@PathVariable("id") int id) {
        books.remove(id);
        return ResponseEntity.ok(books);
    }

    @GetMapping("/book")
    public ResponseEntity getBookByName(@RequestParam("name") String name) {
        List<Book> results = books.stream().filter(book -> book.getName().equals(name)).collect(Collectors.toList());
        return ResponseEntity.ok(results);
    }
}
  1. @RestController **將返回的對象數(shù)據(jù)直接以 JSON 或 XML 形式寫入 HTTP 響應(yīng)(Response)中。**絕大部分情況下都是直接以 JSON 形式返回給客戶端,很少的情況下才會以 XML 形式返回。轉(zhuǎn)換成 XML 形式還需要額為的工作,上面代碼中演示的直接就是將對象數(shù)據(jù)直接以 JSON 形式寫入 HTTP 響應(yīng)(Response)中。關(guān)于@Controller@RestController 的對比,我會在下一篇文章中單獨(dú)介紹到(@Controller +@ResponseBody= @RestController)。
  2. @RequestMapping :上面的示例中沒有指定 GET 與 PUT、POST 等,因?yàn)?*@RequestMapping默認(rèn)映射所有HTTP Action**,你可以使用@RequestMapping(method=ActionType)來縮小這個(gè)映射。
  3. @PostMapping實(shí)際上就等價(jià)于 @RequestMapping(method = RequestMethod.POST),同樣的 @DeleteMapping ,@GetMapping也都一樣,常用的 HTTP Action 都有一個(gè)這種形式的注解所對應(yīng)。
  4. @PathVariable :取url地址中的參數(shù)。@RequestParam url的查詢參數(shù)值。
  5. @RequestBody:可以HttpRequest body 中的 JSON 類型數(shù)據(jù)反序列化為合適的 Java 類型。
  6. ResponseEntity: 表示整個(gè)HTTP Response:狀態(tài)碼,標(biāo)頭和正文內(nèi)容。我們可以使用它來自定義HTTP Response 的內(nèi)容。

運(yùn)行項(xiàng)目并測試效果

這里我們又用到了開發(fā) Web 服務(wù)必備的 Postman 來幫助我們發(fā)請求測試。

1.使用 post 請求給書架增加書籍

這里我模擬添加了 3 本書籍。

Spring——RESTful Web服務(wù),java筆記整理,spring,restful,前端

2.使用 Delete 請求刪除書籍

這個(gè)就不截圖了,可以參考上面發(fā)Post請求的方式來進(jìn)行,請求的 url: localhost:8333/api/book/1。

3.使用 Get 請求根據(jù)書名獲取特定的書籍

請求的 url:localhost:8333/api/book?name=book1文章來源地址http://www.zghlxwxcb.cn/news/detail-682641.html

到了這里,關(guān)于Spring——RESTful Web服務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Spring Boot】詳解restful api

    目錄 1.restful api 1.1.歷史 1.2.內(nèi)容 1.3.傳參 2.Spring Boot中的Restful Api RESTful API(Representational State Transferful Application Programming Interface)是一種設(shè)計(jì)風(fēng)格,用于構(gòu)建基于網(wǎng)絡(luò)的應(yīng)用程序接口(API)。它基于一組原則和約定,旨在使不同的計(jì)算機(jī)系統(tǒng)能夠通過 HTTP 協(xié)議相互通信和交換

    2024年02月13日
    瀏覽(85)
  • Spring MVC 之 Restful 風(fēng)格請求?持

    Spring MVC 之 Restful 風(fēng)格請求?持

    Tips: REST ?格請求是什么樣的? SpringMVC對 REST ?格請求到底提供了怎樣的?持 在 Web 系統(tǒng)中,前端通過 HTTP 請求給后端傳遞參數(shù)有四種方式,可以將參數(shù)放在 請求路徑 、 Query 參數(shù) 、 HTTP 協(xié)議頭 、 HTTP 協(xié)議體 中。而放在協(xié)議體中的參數(shù)又有很多格式,比如 json 、 form 表單

    2024年02月08日
    瀏覽(23)
  • 【Spring教程30】Spring框架實(shí)戰(zhàn):從零開始學(xué)習(xí)SpringMVC 之 Rest風(fēng)格簡介與RESTful入門案例

    【Spring教程30】Spring框架實(shí)戰(zhàn):從零開始學(xué)習(xí)SpringMVC 之 Rest風(fēng)格簡介與RESTful入門案例

    歡迎大家回到《Java教程之Spring30天快速入門》,本教程所有示例均基于Maven實(shí)現(xiàn),如果您對Maven還很陌生,請移步本人的博文《如何在windows11下安裝Maven并配置以及 IDEA配置Maven環(huán)境》,本文的上一篇為《SpringMVC 之 服務(wù)器響應(yīng)》 REST(Representational State Transfer),表現(xiàn)形式狀態(tài)轉(zhuǎn)

    2024年02月04日
    瀏覽(23)
  • Shiro + JWT + Spring Boot Restful 簡易教程

    GitHub 項(xiàng)目地址:github.com/Smith-Cruis… 。 原文地址:www.inlighting.org/archives/sp…。 我也是半路出家的人,如果大家有什么好的意見或批評,請務(wù)必 issue 下。 如果想要直接體驗(yàn),直接 clone 項(xiàng)目,運(yùn)行 mvn spring-boot:run 命令即可進(jìn)行訪問。網(wǎng)址規(guī)則自行看教程后面。 如果想了解 Sp

    2024年01月19日
    瀏覽(44)
  • Spring Boot + JWT = 安全無憂的RESTful API

    在構(gòu)建現(xiàn)代Web應(yīng)用程序時(shí),安全性是一個(gè)不可或缺的要素。JSON Web Token(JWT)提供了一種簡潔的方式來保護(hù)我們的RESTful接口。在本篇博客中,我們將一步步探索如何在Spring Boot應(yīng)用中整合JWT,確保你的API安全、高效且易于管理。 JWT(JSON Web Token)是一個(gè)開放標(biāo)準(zhǔn)(RFC 7519),它

    2024年02月02日
    瀏覽(21)
  • Spring Boot進(jìn)階(76):使用Spring Boot和Jersey打造高效 RESTful API

    Spring Boot進(jìn)階(76):使用Spring Boot和Jersey打造高效 RESTful API

    ????????RESTful API已經(jīng)成為了現(xiàn)代web應(yīng)用開發(fā)中的重要組成部分,使得我們可以通過HTTP請求來訪問服務(wù)器中的資源。Spring Boot和Jersey是兩個(gè)非常流行的開源框架,它們可以協(xié)同工作來幫助我們打造高效的RESTful API。本篇文章將介紹如何使用Spring Boot和Jersey來創(chuàng)建RESTful API,并

    2024年02月08日
    瀏覽(21)
  • 深入探討Spring Boot:實(shí)現(xiàn)一個(gè)完整的RESTful應(yīng)用程序

    在這篇博客中,我們將深入探討如何使用Spring Boot構(gòu)建一個(gè)完整的RESTful應(yīng)用程序,數(shù)據(jù)庫選擇MySQL。我們將通過實(shí)現(xiàn)一個(gè)簡單的用戶管理系統(tǒng)來演示Spring Boot的強(qiáng)大功能。 首先,訪問Spring Initializr,選擇以下依賴項(xiàng): Web:用于創(chuàng)建Web應(yīng)用程序 JPA:用于訪問數(shù)據(jù)庫 MySQL:用于連

    2024年02月03日
    瀏覽(20)
  • Spring Boot 3.x- RESTful API集成SpringDoc&Swagger-UI

    Spring Boot 3.x- RESTful API集成SpringDoc&Swagger-UI

    系列文章:Spring Boot 3.x 系列教程 springdoc-openapi 幫助使用Spring Boot項(xiàng)目自動(dòng)化API文檔的生成。 springdoc-openapi 的工作原理是在運(yùn)行時(shí)檢查應(yīng)用程序,根據(jù)Spring配置、類結(jié)構(gòu)和各種注釋推斷 API 語義。 自動(dòng)生成 JSON/YAML 和 HTML 格式的 API 文檔。這個(gè)文檔可以通過使用 swagger-api 注解來

    2024年01月25日
    瀏覽(21)
  • 【注解】@RestController、@GetMapping、@PostMapping、@RequestMapping等RESTful風(fēng)格的Web服務(wù)的注解

    @RestController 是 Spring 4.0 引入的一個(gè)注解,它是 @Controller 和 @ResponseBody 的組合。 用于標(biāo)識一個(gè)類,表示這個(gè)類是一個(gè)控制器,并且其中的方法會返回 JSON 格式的數(shù)據(jù)。通常用于構(gòu)建 RESTful API。 @RequestMapping 用于映射 HTTP 請求到控制器的處理方法。 可以用在類級別和方法級別。

    2024年01月16日
    瀏覽(34)
  • Spring Boot學(xué)習(xí)隨筆- RestFul API(@RestController、@RequestBody、@PathVariable),使用ResponseEntity+HttpStatus作為返回值

    學(xué)習(xí)視頻:【編程不良人】2021年SpringBoot最新最全教程 什么是REST REST 全稱是 Resource Representational State Transfer ,中文意思是表述性狀態(tài)轉(zhuǎn)移,它首次出現(xiàn)在2000年Roy Fielding的博士論文中,Roy Fielding是HTTP規(guī)范的主要編寫者之一。他在論文中表示:我這篇文章的目的就是想在符合

    2024年02月04日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包