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

【Spring Boot】詳解restful api

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

目錄

1.restful api

1.1.歷史

1.2.內(nèi)容

1.3.傳參

2.Spring Boot中的Restful Api


1.restful api

1.1.歷史

RESTful API(Representational State Transferful Application Programming Interface)是一種設(shè)計(jì)風(fēng)格,用于構(gòu)建基于網(wǎng)絡(luò)的應(yīng)用程序接口(API)。它基于一組原則和約定,旨在使不同的計(jì)算機(jī)系統(tǒng)能夠通過(guò) HTTP 協(xié)議相互通信和交換數(shù)據(jù)。

RESTful 架構(gòu)風(fēng)格的歷史可以追溯到 2000 年,由 Roy Fielding 在他的博士論文 "Architectural Styles and the Design of Network-based Software Architectures" 中首次提出。他在論文中描述了 REST(Representational State Transfer)的概念,并介紹了一組原則和約定,用于設(shè)計(jì)和構(gòu)建分布式網(wǎng)絡(luò)應(yīng)用程序。

以下是 RESTful 架構(gòu)風(fēng)格的主要?dú)v史發(fā)展階段:

  1. 博士論文(2000 年):Roy Fielding在他的博士論文中首次提出了 REST 的概念。他強(qiáng)調(diào)了分布式系統(tǒng)設(shè)計(jì)中資源的重要性,以及通過(guò)使用統(tǒng)一接口和狀態(tài)轉(zhuǎn)移的方式來(lái)實(shí)現(xiàn)系統(tǒng)的可伸縮性、性能和可擴(kuò)展性。

  2. Web 2.0 時(shí)代(2000 年代中期):隨著 Web 的發(fā)展,REST 開始獲得更多關(guān)注。許多 Web 2.0 應(yīng)用程序采用了 RESTful 架構(gòu),使其能夠更有效地交換數(shù)據(jù)和與客戶端進(jìn)行通信。

  3. 移動(dòng)應(yīng)用的興起(2010 年代):隨著智能手機(jī)和移動(dòng)應(yīng)用的興起,RESTful API 成為連接移動(dòng)客戶端與后端服務(wù)的主要方式。許多社交媒體、電子商務(wù)和其他類型的應(yīng)用程序開始采用 RESTful 架構(gòu)。

  4. 微服務(wù)架構(gòu)(2010 年代后期至今):RESTful API 也在微服務(wù)架構(gòu)中得到廣泛應(yīng)用。微服務(wù)架構(gòu)通過(guò)將應(yīng)用程序拆分為小型、獨(dú)立的服務(wù)來(lái)提高可維護(hù)性和可伸縮性,而 RESTful API 則成為這些服務(wù)之間通信的一種標(biāo)準(zhǔn)方式。

1.2.內(nèi)容

RESTful API總結(jié)起來(lái)內(nèi)容如下:

  1. 資源和標(biāo)識(shí)符:在 RESTful API 中,每個(gè)資源都有一個(gè)唯一的標(biāo)識(shí)符(URI),用于唯一標(biāo)識(shí)該資源。資源可以是實(shí)際對(duì)象、數(shù)據(jù)、服務(wù)等。

  2. 統(tǒng)一接口:RESTful API 使用統(tǒng)一的 HTTP 方法(GET、POST、PUT、DELETE 等)來(lái)執(zhí)行操作,如獲取資源、創(chuàng)建資源、更新資源和刪除資源。

  3. 狀態(tài)無(wú)關(guān)性:RESTful API 是無(wú)狀態(tài)的,每個(gè)請(qǐng)求都應(yīng)該包含足夠的信息來(lái)理解和處理請(qǐng)求,而不需要維護(hù)會(huì)話狀態(tài)。

  4. 緩存:RESTful API 支持緩存,可以提高性能和減少網(wǎng)絡(luò)流量。

  5. 客戶端-服務(wù)器:RESTful API 將客戶端和服務(wù)器解耦,使它們可以獨(dú)立進(jìn)行開發(fā)和擴(kuò)展。

  6. 分層系統(tǒng):RESTful API 支持分層系統(tǒng)架構(gòu),其中每個(gè)層都可以獨(dú)立修改和優(yōu)化,從而提高了系統(tǒng)的靈活性和可伸縮性。

  7. 按需代碼:服務(wù)器可以在需要時(shí)將代碼傳送到客戶端,以實(shí)現(xiàn)功能的擴(kuò)展。

  8. 面向資源:RESTful API 設(shè)計(jì)應(yīng)該圍繞資源進(jìn)行,而不是圍繞操作進(jìn)行。

  9. 自描述消息:RESTful API 的請(qǐng)求和響應(yīng)消息應(yīng)該是自描述的,使開發(fā)者能夠理解其含義。

以上的所有內(nèi)容,其核心其實(shí)就一個(gè)就是第2點(diǎn),使用統(tǒng)一的 HTTP 方法(GET、POST、PUT、DELETE 等)來(lái)執(zhí)行操作,如獲取資源、創(chuàng)建資源、更新資源和刪除資源。

以對(duì)用戶的增刪改查為例,rest api總結(jié)起來(lái)就是:

HTTP方法 URL 功能
GET /user 獲取用戶
POST /user 增加用戶
PUT /user 修改用戶
DELETE /user 刪除用戶

1.3.傳參

rest api規(guī)范中對(duì)傳參沒(méi)有強(qiáng)制規(guī)定,但是有一些工程實(shí)踐總結(jié)出來(lái)的優(yōu)秀經(jīng)驗(yàn),常用的傳參方式如下

  1. URL 路徑參數(shù):將參數(shù)直接包含在 URL 路徑中。這通常用于標(biāo)識(shí)資源的唯一標(biāo)識(shí)符,如獲取特定用戶的信息。

    示例:GET /users/{id}

  2. 查詢字符串參數(shù):將參數(shù)作為查詢字符串的一部分包含在 URL 中。這用于傳遞過(guò)濾條件、分頁(yè)信息等。

    示例:GET /users?role=admin&page=1&limit=10

  3. 請(qǐng)求體參數(shù):將參數(shù)包含在請(qǐng)求體中,通常在創(chuàng)建或更新資源時(shí)使用。數(shù)據(jù)通常以 JSON 或 XML 格式發(fā)送。

    示例:

    • POST /users,請(qǐng)求體:{"username": "john", "email": "john@example.com"}

    • PUT /users/{id},請(qǐng)求體:{"email": "newemail@example.com"}

2.Spring Boot中的Restful Api

Spring MVC中本身就自帶

@GetMapping

@PostMapping

@PutMapping

@DeleteMapping

這些注解可以輕松實(shí)現(xiàn)Restful api,唯一需要注意的就是傳參。

Spring Boot支持Restful Api將參數(shù)放在路徑里:

@GetMapping("/user/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
 ? ?// 根據(jù) id 查詢用戶信息并返回
}

如果參數(shù)太多,支持放在http報(bào)文的body里:

@PostMapping("/user")
public ResponseEntity<User> createUser(@RequestBody User user) {
 ? ?// 創(chuàng)建用戶并返回創(chuàng)建后的用戶信息
}

Rest Api規(guī)范里建議要給出規(guī)范的響應(yīng)碼,Spring Boot里提供了ResponseEntity 類來(lái)構(gòu)建響應(yīng),可以設(shè)置狀態(tài)碼、頭部信息和響應(yīng)體。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-641565.html

@GetMapping("/user/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
 ? ?User user = userService.getUserById(id);
 ? ?if (user != null) {
 ? ? ? ?return ResponseEntity.ok(user);
 ?  } else {
 ? ? ? ?return ResponseEntity.notFound().build();
 ?  }
}

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

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

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

相關(guān)文章

  • Java EE 突擊 9 - Spring Boot 日志文件

    Java EE 突擊 9 - Spring Boot 日志文件

    這個(gè)專欄給大家介紹一下 Java 家族的核心產(chǎn)品 - SSM 框架 JavaEE 進(jìn)階專欄 Java 語(yǔ)言能走到現(xiàn)在 , 仍然屹立不衰的原因 , 有一部分就是因?yàn)?SSM 框架的存在 接下來(lái) , 博主會(huì)帶大家了解一下 Spring、Spring Boot、Spring MVC、MyBatis 相關(guān)知識(shí)點(diǎn) 并且?guī)ьI(lǐng)大家進(jìn)行環(huán)境的配置 , 讓大家真正用好

    2024年02月13日
    瀏覽(21)
  • 15.Spring Boot單元測(cè)試(Service、Mock、Feign、Http Rest API)

    15.Spring Boot單元測(cè)試(Service、Mock、Feign、Http Rest API)

    Spring Boot專欄目錄(點(diǎn)擊進(jìn)入…) **test**表示依賴的組件僅僅參與測(cè)試相關(guān)的工作,包括測(cè)試代碼的編譯和執(zhí)行,不會(huì)被打包包含進(jìn)去;spring-boot-starter-test是Spring Boot提供項(xiàng)目測(cè)試的工具包,內(nèi)置了多種測(cè)試工具,方便我們?cè)陧?xiàng)目中做單元測(cè)試、集成測(cè)試。 引入spring-boot-star

    2024年02月04日
    瀏覽(40)
  • 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 語(yǔ)義。 自動(dòng)生成 JSON/YAML 和 HTML 格式的 API 文檔。這個(gè)文檔可以通過(guò)使用 swagger-api 注解來(lái)

    2024年01月25日
    瀏覽(21)
  • 【JAVA EE】Spring Boot中maven環(huán)境的搭建和設(shè)置

    【JAVA EE】Spring Boot中maven環(huán)境的搭建和設(shè)置

    Sping Boot是Spring推出的框架,是Spring家族的一個(gè)子項(xiàng)目,其設(shè)計(jì)初衷是為了簡(jiǎn)化Spring配置,從而讓用戶可以輕松構(gòu)建獨(dú)立運(yùn)行的程序,并極大提高工作效率。 本系列將學(xué)習(xí)Spring Boot的相關(guān)原理和簡(jiǎn)單開發(fā)。 在Spring Boot框架出現(xiàn)以前,java EE開發(fā)常用的框架是Spring,該框架開始于

    2024年02月06日
    瀏覽(21)
  • 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日
    瀏覽(26)
  • 【分享】原力計(jì)劃的初衷 【探討】新的一年,你對(duì)原力計(jì)劃有哪些期待?

    【分享】原力計(jì)劃的初衷 【探討】新的一年,你對(duì)原力計(jì)劃有哪些期待?

    哈嘍,大家好,我是幾何心涼,這是一份全新的專欄,唯一得倒CSDN王總的授權(quán),來(lái)對(duì)于我們每周四的綠蘿時(shí)間 ——【直達(dá)CSDN】直播內(nèi)容進(jìn)行總結(jié)概括,讓大家能夠省去看直播回放的時(shí)間也能夠了解直播內(nèi)容和官方的最新動(dòng)態(tài),希望大家給予涼哥最大的支持,如有未授權(quán)用戶

    2024年02月16日
    瀏覽(26)
  • 【Java EE】Spring請(qǐng)求如何傳遞參數(shù)詳解

    【Java EE】Spring請(qǐng)求如何傳遞參數(shù)詳解

    訪問(wèn)不同的路徑,就是發(fā)送不同的請(qǐng)求.在發(fā)送請(qǐng)求時(shí),可能會(huì)帶?些參數(shù),所以我們?cè)趯W(xué)習(xí)Spring的請(qǐng)求時(shí),主要是學(xué)習(xí)如何傳遞參數(shù)到后端以及后端如何接收. 下面博主會(huì)對(duì)傳遞參數(shù)進(jìn)行一個(gè)詳解,咱們主要是使?瀏覽器和Postman來(lái)模擬 當(dāng)我們運(yùn)行后,用瀏覽器進(jìn)行訪問(wèn) http://127.0.

    2024年04月12日
    瀏覽(30)
  • 2023 最新版IntelliJ IDEA 2023.1創(chuàng)建Java Web前(vue3)后端(spring-boot3)分離 項(xiàng)目詳細(xì)步驟(圖文詳解)

    2023 最新版IntelliJ IDEA 2023.1創(chuàng)建Java Web前(vue3)后端(spring-boot3)分離 項(xiàng)目詳細(xì)步驟(圖文詳解)

    2023 最新版IntelliJ IDEA 2023.1創(chuàng)建Java Web 項(xiàng)目詳細(xì)步驟(圖文詳解) 本篇使用當(dāng)前Java Web開發(fā)主流的spring-boot3框架來(lái)創(chuàng)建一個(gè)Java前后端分離的項(xiàng)目,前端使用的也是目前前端主流的vue3進(jìn)行一個(gè)簡(jiǎn)單的項(xiàng)目搭建,讓你距離Java全棧開發(fā)更近一步 ?????。 使用版本: “17.0.1”

    2024年02月12日
    瀏覽(33)
  • 【大數(shù)據(jù)】Presto(Trino)REST API 與執(zhí)行計(jì)劃介紹

    【大數(shù)據(jù)】Presto(Trino)REST API 與執(zhí)行計(jì)劃介紹

    Presto(現(xiàn)在叫Trino)是一個(gè)分布式SQL查詢引擎,它允許用戶在多個(gè)數(shù)據(jù)源上執(zhí)行查詢。Presto本身是一個(gè)獨(dú)立的Java程序,可以通過(guò)REST API與其他應(yīng)用程序進(jìn)行通信。 Presto的REST API是一組HTTP接口,可以用于與Presto服務(wù)器進(jìn)行通信,并提交查詢請(qǐng)求、獲取查詢結(jié)果等。以下是Presto

    2024年02月07日
    瀏覽(19)
  • 微信小程序的授權(quán)登錄-Java 后端 (Spring boot)

    微信開發(fā)文檔鏈接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 一個(gè)可以測(cè)試的微信小程序 此微信小程序的APPID和APPscret(至開發(fā)者后臺(tái)獲?。?從時(shí)序圖我們可以了解到流程大致分為兩步: 小程序端獲取code后傳給Java后臺(tái) Java后臺(tái)獲取code后向微信后臺(tái)接口

    2024年02月09日
    瀏覽(97)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包