摘要:廢話不多講,下面就說說風格到底是個神馬東東。一個資源可能會隨著需求的變化而經歷一個資源創建修改查詢刪除等過程,風格正是基于協議運行的,協議又被稱為無狀態協議,所以資源的變化需要在服務端完成。
現如今微服務如日中天,那么大家有沒有想過各個微服務之間是怎么調用數據亦或是怎么交互的呢?當然方式有很多,但今天所說的REST風格被業界推薦為微服務之間交互的首選方式(小編還是非常喜歡這種方式的)。廢話不多講,下面就說說REST風格到底是個神馬東東。--讀《深入淺出 Sping Boot》有感
REST簡介REST(Representational State Transfer)又被喚作表現層狀態轉換。它涉及到三個重要名詞:
資源
所謂資源簡單講就是服務所能提供的數據,可以是實體數據也可是媒體類型,圖片、PDF、文本等
表現層
何為變現層?簡單說就是將數據以某種方式展現給用戶,或者給客戶返回一張圖片等等動作稱之為表現,通常是已JSON或XML形式展現數據
狀態轉換
狀態轉換就是對數據進行一系列的操作,因為資源本身并非一塵不變,隨著需求的變化而變化。一個資源可能會隨著需求的變化而經歷一個資源創建、修改、查詢、刪除等過程,REST風格正是基于HTTP協議運行的,HTTP協議又被稱為無狀態協議,所以資源的變化需要在服務端完成。
在做這個之前有必要清楚Http協議的7種常用動作:GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS
# 以id為編碼 獲取商品信息 GET /goods/1 # 獲取多個商品信息 GET /goods/{goodName}/{note} # 創建商品信息 POST /goods/{goodName}/{price}/{note} # 修改商品信息 PUT /goods/{goodName}/{price}/{note} # 修改商品部分 PATCH /goods/{goodName}/{note} # 刪除某個商品信息 DELETE /goods/2REST風格端點
# 創建一個商品實體類 public class goods{ private Long id; private String goodsName; private Double price; private String note; public Long getId(){ return id; } public void setId(Long id){ this.id = id; } public String getGoodsName(){ return goodsName; } public void setGoodsName(String goodsName){ this.goodsName = goodsName; } public Double getPrice(){ return price; } public void setPrice(Double price){ this.price = price; } public String getNote(){ return note; } public void setNote(String note){ this.note = note; } }
# 控制器 @Controller public class GoodsController{ /** *REST風格 獲取商品的GET請求方式 **/ @GetMapping(value="/goods/{id}") @ResponseBody public Goods getGoods(@Pathvariable("id") Long id){ Goods goods = goodsService.getGoods(id); return goods; } /** *REST風格 PUT請求修改商品信息 **/ @GetMapping(value="/goods/{id}") @ResponseBody public Goods getGoods(@Pathvariable("id") Long id,@RequestBody Goods goods){ Goods goods = goodsService.getGoods(id); goods.setId(id); goodsService.update(goods); return goods; } /** *REST風格 使用HTTP的DELETE請求刪除商品信息 **/ @GetMapping(value="/goods/{id}") @ResponseBody public String getGoods(@Pathvariable("id") Long id){ int status = goodsService.deleteGoods(id); String result = ""; if(status=0){ result = "操作成功"; }else{ result = "操作失敗"; } return result; } }
以上是我對REST風格的簡單認識,希望能給您提供些許幫助!謝謝支持!!
2019-03-27 23:30:34 星期三
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73972.html
摘要:它就是史上最簡單的教程第三篇服務消費者后端掘金上一篇文章,講述了通過去消費服務,這篇文章主要講述通過去消費服務。概覽和架構設計掘金技術征文后端掘金是基于的一整套實現微服務的框架。 Spring Boot 配置文件 – 在坑中實踐 - 后端 - 掘金作者:泥瓦匠鏈接:Spring Boot 配置文件 – 在坑中實踐版權歸作者所有,轉載請注明出處本文提綱一、自動配置二、自定義屬性三、ran...
摘要:通過增刪查改,引起資源狀態的改變,稱為狀態轉移。用于獲取資源的元信息。方法與方法類似,都可以查詢資源的元信息放在的,但不會返回資源的表述。表示請求有問題,如參數錯誤等。表示當前請求的某前置條件不符合。網關錯誤,從上游服務器收到無效響應。 歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由sammyshen 發表于云+社區專欄 最近幾年REST API越來越流行,特別是...
摘要:但是遠遠不僅是指的風格,它是一種網絡應用的架構風格。參考用定位資源在架構風格中,用來指定一個資源。完整狀態碼列表如何設計在過去不使用架構風格的時候,如果我們要設計一個系統,會以操作為出發點,然后圍繞它去建設其他需要的東西。 引言 作為Web開發者,你可能或多或少了解一些REST的知識,甚至已經非常習慣于它,以至于在正式地學習REST的時候,你可能心里會想:本來就是這樣做的啊,不然還能怎...
閱讀 2947·2021-09-23 11:32
閱讀 2918·2021-09-22 15:12
閱讀 1708·2019-08-30 14:07
閱讀 3448·2019-08-29 16:59
閱讀 1640·2019-08-29 11:11
閱讀 2307·2019-08-26 13:50
閱讀 2426·2019-08-26 13:49
閱讀 2621·2019-08-26 11:49