restful是什么

大家好揪垄,我是IT修真院深圳分院第5期學員幕与,一枚正直善良的JAVA程序員。

今天給大家分享一下秒咐,修真院官網(wǎng)JAVA任務(wù)1中盈简,restful是什么

一太示、背景介紹

restful風格柠贤,就是一種面向資源服務(wù)的API設(shè)計方式,它不是規(guī)范类缤,不是標準臼勉,它一種設(shè)計模式。是符合rest架構(gòu)風格的網(wǎng)絡(luò)API接口,完全承認Http是用于標識資源餐弱。


二.知識剖析

1.REST名稱

REST:REpresentational State Transfer = 直接翻譯:表現(xiàn)層狀態(tài)轉(zhuǎn)移宴霸。晦澀是因為前面主語被去掉了膏蚓,全稱是 Resource Representational State Transfer:通俗來講就是:資源在網(wǎng)絡(luò)中以某種表現(xiàn)形式進行狀態(tài)轉(zhuǎn)移瓢谢。分解開來:Resource:資源,即數(shù)據(jù)(網(wǎng)絡(luò)的核心)驮瞧。比如 newsfeed氓扛,friends等;Representational:某種表現(xiàn)形式剧董,比如用JSON幢尚,XML,JPEG等翅楼;State Transfer:狀態(tài)變化尉剩。通過HTTP動詞實現(xiàn)。

2.REST是什么

2.1. REST描述的是在網(wǎng)絡(luò)中client和server的一種交互形式毅臊;REST本身不實用理茎,實用的是如何設(shè)計 RESTful API(REST風格的網(wǎng)絡(luò)接口);

2.2. Server提供的RESTful API中,URL中只使用名詞來指定資源皂林,原則上不使用動詞朗鸠。“資源”是REST架構(gòu)或者說整個網(wǎng)絡(luò)處理的核心

2.3. 用HTTP協(xié)議里的動詞來實現(xiàn)資源的添加础倍,修改烛占,刪除等操作。即通過HTTP動詞來實現(xiàn)資源的狀態(tài)扭轉(zhuǎn):GET 用來獲取資源沟启,POST 用來新建資源(也可以用于更新資源)忆家,PUT 用來更新資源,DELETE 用來刪除資源德迹。

2.4. Server和Client之間傳遞某資源的一個表現(xiàn)形式芽卿,比如用JSON,XML傳輸文本胳搞,或者用JPG卸例,WebP傳輸圖片等。當然還可以壓縮HTTP傳輸時的數(shù)據(jù)(on-wire data compression)肌毅。

2.5. 用 HTTP Status Code傳遞Server的狀態(tài)信息筷转。比如最常用的 200 表示成功,500 表示Server內(nèi)部錯誤等

3.為什么使用restful結(jié)構(gòu)

大家都知道"古代"網(wǎng)頁都是前端后端融在一起的芽腾,比如之前的PHP旦装,JSP等。在之前的桌面時代問題不大摊滔,但是近年來移動互聯(lián)網(wǎng)的發(fā)展,各種類型的Client層出不窮店乐,RESTful可以通過一套統(tǒng)一的接口為 Web艰躺,iOS和Android提供服務(wù)。另外對于廣大平臺來說眨八,比如Facebook platform腺兴,微博開放平臺,微信公共平臺等廉侧,它們不需要有顯式的前端页响,只需要一套提供服務(wù)的接口,于是RESTful更是它們最好的選擇段誊。

4.Server的API如何設(shè)計才滿足RESTful要求

1.URI使用名詞而不是動詞闰蚕,且推薦用復(fù)數(shù)。

2.保證 HEAD 和 GET 方法是安全的连舍,不會對資源狀態(tài)有所改變(污染)没陡。

3.資源的地址推薦用嵌套結(jié)構(gòu)。

4.警惕返回結(jié)果的大小。如果過大盼玄,及時進行分頁(pagination)或者加入限制(limit)贴彼。HTTP協(xié)議支持分頁(Pagination)操作,在Header中使用 Link 即可埃儿。

5.使用正確的HTTP Status Code表示訪問狀態(tài)

6.在返回結(jié)果用明確易懂的文本(String器仗。注意返回的錯誤是要給人看的童番,避免用 1001 這種錯誤信息)青灼,而且適當?shù)丶尤胱⑨尅?/p>



三.常見問題

1.URL和URI的區(qū)別

2.怎么驗證我的接口是restful風格的。


四.解決方案

1.假設(shè)所有的Html文檔都有唯一的編號妓盲,記作html:xxxxx杂拨,xxxxx是一串數(shù)字,即Html文檔的身份證號碼悯衬,這個能唯一標識一個Html文檔弹沽,那么這個號碼就是一個URI。而URL則通過描述是哪個主機上哪個路徑上的文件來唯一確定一個資源筋粗,也就是定位的方式來實現(xiàn)的URI策橘。

2.用Postman軟件來驗證,輸入http://localhost:8524/student/list娜亿,選擇GET方式丽已,點擊params,添加key:id,value:1,點擊send买决,得到j(luò)son數(shù)據(jù)沛婴。如果想要post請求,輸入:http://localhost:8524/student/a?督赤,選擇POST方式嘁灯,點擊如果服務(wù)端需要請求類型為json,需要在“headers”添加 key:Content-Type , value:application/json 選擇“raw”


五躲舌。編碼實戰(zhàn)


七丑婿、參考文獻

張慶東師兄的PPT

八.更多討論

1.student.xml里面是什么配置?

select id="selectByPrimaryKey"parameterType="java.lang.Integer"resultMap="BaseResultMap">

select

<includerefid="Base_Column_List"/>

fromstudent

where id = #{id,jdbcType=INTEGER}

</select>

<delete id="deleteByPrimaryKey"parameterType="java.lang.Integer">

deletefromstudent

where id=#{id,jdbcType=INTEGER}

把以前的INTEGER換成Integer没卸,我在上面耽誤了一下午羹奉,測試類老是過不去。

2.SpringMVC 只能處理post和get,為了還原對put和delete的處理约计,web.xml里面要加載什么過濾器诀拭?

答:?不知道簡書什么毛病,復(fù)制粘貼總是漏掉一部分文字

hiddenHttpMethodFilterorg.springframework.web.filter.HiddenHttpMethodFilterhiddenHttpMethodFilter/*

3.如何使用postman發(fā)送post病蛉、put請求

答:

在web測試中炫加,如果前后端尚未聯(lián)調(diào)瑰煎,后端可通過模擬前端發(fā)送請求的方式來測試后端代碼是否調(diào)通,當發(fā)送post俗孝、put請求時酒甸,如何使用postman來測試。

3.1.配置參數(shù)

3.2.選擇Body--->raw

3.3.寫入json

3.4.此時赋铝,需要將controller層的參數(shù)由字符串修改為對象插勤,后端才能將前端的json數(shù)據(jù)順利解析。

詳見視頻

騰訊視頻

感謝大家觀看

今天的分享就到這里啦革骨,歡迎大家點贊农尖、轉(zhuǎn)發(fā)、留言良哲、拍磚~

技能樹.IT修真院

“我們相信人人都可以成為一個工程師盛卡,現(xiàn)在開始,找個師兄筑凫,帶你入門滑沧,掌控自己學習的節(jié)奏,學習的路上不再迷梦∈担”滓技。

這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線棚潦,學習透明化令漂,成長可見化,師兄1對1免費指導丸边〉兀快來與我一起學習吧~

我的邀請碼:19214843,

或者你可以直接點擊此鏈接:http://www.jnshu.com/login/1/19214843

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末原环,一起剝皮案震驚了整個濱河市挠唆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘱吗,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滔驾,死亡現(xiàn)場離奇詭異谒麦,居然都是意外死亡,警方通過查閱死者的電腦和手機哆致,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門绕德,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人摊阀,你說我怎么就攤上這事耻蛇∽俚牛” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵臣咖,是天一觀的道長跃捣。 經(jīng)常有香客問我,道長夺蛇,這世上最難降的妖魔是什么疚漆? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮刁赦,結(jié)果婚禮上娶聘,老公的妹妹穿的比我還像新娘。我一直安慰自己甚脉,他們只是感情好丸升,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牺氨,像睡著了一般狡耻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上波闹,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天酝豪,我揣著相機與錄音,去河邊找鬼精堕。 笑死孵淘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的歹篓。 我是一名探鬼主播瘫证,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼庄撮!你這毒婦竟也來了背捌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤洞斯,失蹤者是張志新(化名)和其女友劉穎毡庆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烙如,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡么抗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了亚铁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝇刀。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖徘溢,靈堂內(nèi)的尸體忽然破棺而出吞琐,到底是詐尸還是另有隱情捆探,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布站粟,位于F島的核電站黍图,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏卒蘸。R本人自食惡果不足惜雌隅,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缸沃。 院中可真熱鬧恰起,春花似錦、人聲如沸趾牧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翘单。三九已至吨枉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哄芜,已是汗流浹背貌亭。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留认臊,地道東北人圃庭。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像失晴,于是被迫代替她去往敵國和親剧腻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理涂屁,服務(wù)發(fā)現(xiàn)书在,斷路器,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • 大家好,我是IT修真院深圳分院java第4期學員帖族,一枚正直善良的java程序員义矛。今天給大家分享一下,修真院官網(wǎng)ja...
    肥胖癥患者閱讀 408評論 0 0
  • 在程序猿DD Spring Boot基礎(chǔ)教程的開山篇《基礎(chǔ)項目構(gòu)建盟萨,引入Web模塊,完成一個簡單的RESTful ...
    蹙眉大傻閱讀 440評論 0 0
  • 一說到REST了讨,我想大家的第一反應(yīng)就是“啊捻激,就是那種前后臺通信方式制轰。”但是在要求詳細講述它所提出的各個約束胞谭,以及如...
    時待吾閱讀 3,423評論 0 19
  • 解釋一 REST -- REpresentational State Transfer 直接翻譯:表現(xiàn)層狀態(tài)轉(zhuǎn)移垃杖。...
    時間之友閱讀 2,234評論 0 10