開(kāi)始一個(gè)最簡(jiǎn)單的RESTful API項(xiàng)目

最近在網(wǎng)易云課堂上看一些視頻瀑晒,給大家推薦一個(gè)講Spring Boot的視頻https://study.163.com/course/courseMain.htm?courseId=1005213034绍坝,老師講的很不錯(cuò)。在學(xué)習(xí)的時(shí)候我也會(huì)做一些筆記苔悦,方便日后鞏固轩褐。

什么是RESTful API?

REST是Representational State Transfer的縮寫(xiě)。它的特點(diǎn)是:

  • 所有的東西都是資源玖详,所有操作都通過(guò)對(duì)資源的增刪改查(CRUD)實(shí)現(xiàn)
  • 對(duì)資源的增刪改查對(duì)應(yīng)對(duì)URL的操作(POST, DELETE, PUT, GET)
  • 無(wú)狀態(tài)的把介,所謂無(wú)狀態(tài)即所有的資源都可以URI定位,而且這個(gè)定位與其他資源無(wú)關(guān)蟋座,也不會(huì)因?yàn)槠渌Y源的變化而變化拗踢。

用一句話(huà)概括就是:URL定位資源,用HTTP動(dòng)詞(GET,POST,PUT,DELETE)描述操作向臀。

  • Resource:資源巢墅,即數(shù)據(jù)
  • Representational:某種表現(xiàn)形式,比如用JSON券膀,XML君纫,JPEG等
  • State Transfer:狀態(tài)變化。通過(guò)HTTP動(dòng)詞實(shí)現(xiàn)芹彬。

所以RESTful API就是REST風(fēng)格的API蓄髓。 那么在什么場(chǎng)景下使用RESTful API呢?在當(dāng)今的互聯(lián)網(wǎng)應(yīng)用的前端展示媒介很豐富雀监。有手機(jī)双吆、有平板電腦還有PC以及其他的展示媒介眨唬。那么這些前端接收到的用戶(hù)請(qǐng)求統(tǒng)一由一個(gè)后臺(tái)來(lái)處理并返回給不同的前端肯定是最科學(xué)和最經(jīng)濟(jì)的方式会前,RESTful API就是一套協(xié)議來(lái)規(guī)范多種形式的前端和同一個(gè)后臺(tái)的交互方式。

RESTful API由后臺(tái)也就是SERVER來(lái)提供前端來(lái)調(diào)用匾竿。前端調(diào)用API向后臺(tái)發(fā)起HTTP請(qǐng)求瓦宜,后臺(tái)響應(yīng)請(qǐng)求將處理結(jié)果反饋給前端。也就是說(shuō)RESTful 是典型的基于HTTP的協(xié)議岭妖。

URI命名

什么是Spring Boot?

Spring Boot 的目的是提供一組工具临庇,以便快速構(gòu)建容易配置的 Spring 應(yīng)用程序,不用像Spring一樣昵慌,寫(xiě)一個(gè)Hello World都要配置一大堆假夺。Spring Boot是不需要配置XML的,且它自帶了一個(gè)嵌入式的web服務(wù)器斋攀。引用Spring Boot官網(wǎng)的介紹:

“ Spring Boot 使您能輕松地創(chuàng)建獨(dú)立的已卷、生產(chǎn)級(jí)的、基于 Spring 且能直接運(yùn)行的應(yīng)用程序淳蔼。我們對(duì) Spring 平臺(tái)和第三方庫(kù)有自己的看法侧蘸,所以您從一開(kāi)始只會(huì)遇到極少的麻煩裁眯。”

最簡(jiǎn)單的Spring Boot項(xiàng)目

  1. 首先前往https://start.spring.io

    課時(shí)4.1

  2. 從IDEA中導(dǎo)入項(xiàng)目讳癌,導(dǎo)入時(shí)選中MAVEN的.pom文件穿稳,后面一路next就好


    IDEA import
  3. 導(dǎo)入后的項(xiàng)目結(jié)構(gòu):

    項(xiàng)目結(jié)構(gòu)
  4. 在cn.luxiaofen.test包下新建一個(gè)TvseriesController類(lèi)


    課時(shí)3.1
  5. 在瀏覽器中測(cè)試,地址是http://localhost:8080/tvseries

    課時(shí)3.2

一個(gè)簡(jiǎn)單的RESTful API

一般項(xiàng)目不會(huì)像上面所說(shuō)的這么簡(jiǎn)單晌坤,返回的應(yīng)該是一個(gè)對(duì)象不是一個(gè)Map逢艘。

  1. 在cn.luxiaofen.test新建一個(gè)TvseriesDto類(lèi)


    TvSeriesDto
  2. 修改Controller中的方法:


    修改方法
  3. 到瀏覽器中去驗(yàn)證


    課時(shí)4.3
  4. 如果希望修改時(shí)間顯示,需要修改JSON的一些參數(shù)

日期型轉(zhuǎn)JSON格式

  • 可以在屬性上增加 @JsonFormat(timezone=“GMT+8”, pattern=“yyyy-MM-dd”) 或 @JsonFormat(shape = JsonFormat.Shape.NUMBER)
  • 全局修改可以在application.yml
    spring
       jackson:
       date-format: yyyy-MM-dd  #如果使用字符串型表示骤菠,用這行設(shè)置格式
       timezone: GMT+8 #改成東八區(qū)的時(shí)間
       serialization:
       write-dates-as-timestamps: true  #使用數(shù)值timestamp表示日期
    
  • 兩個(gè)方法可以一起使用埋虹,注解形式會(huì)優(yōu)先

在配置文件中修改JSON格式

  1. 將.properties文件改成.yml文件,看起來(lái)會(huì)比較方便


    課時(shí)4.4
  2. 修改.yml文件


    課時(shí)4.5
  3. 重啟Spring Boot娩怎,到瀏覽器中查看


    課時(shí)4.6

參考博文:
https://blog.csdn.net/hjc1984117/article/details/77334616

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搔课,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子截亦,更是在濱河造成了極大的恐慌爬泥,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崩瓤,死亡現(xiàn)場(chǎng)離奇詭異袍啡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)却桶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)境输,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人颖系,你說(shuō)我怎么就攤上這事嗅剖。” “怎么了嘁扼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵信粮,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我趁啸,道長(zhǎng)强缘,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任不傅,我火速辦了婚禮旅掂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘访娶。我一直安慰自己商虐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著称龙,像睡著了一般留拾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鲫尊,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天痴柔,我揣著相機(jī)與錄音,去河邊找鬼疫向。 笑死咳蔚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搔驼。 我是一名探鬼主播谈火,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舌涨!你這毒婦竟也來(lái)了糯耍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤囊嘉,失蹤者是張志新(化名)和其女友劉穎温技,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體扭粱,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舵鳞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琢蛤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜓堕。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖博其,靈堂內(nèi)的尸體忽然破棺而出套才,到底是詐尸還是另有隱情,我是刑警寧澤贺奠,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布霜旧,位于F島的核電站,受9級(jí)特大地震影響儡率,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜以清,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一儿普、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掷倔,春花似錦眉孩、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春隅茎,著一層夾襖步出監(jiān)牢的瞬間欣孤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工呀潭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钉迷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓钠署,卻偏偏與公主長(zhǎng)得像糠聪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谐鼎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理舰蟆,服務(wù)發(fā)現(xiàn),斷路器狸棍,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評(píng)論 6 342
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架夭苗,建立于...
    Hsinwong閱讀 22,313評(píng)論 1 92
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,506評(píng)論 25 707
  • 在南方城市,由于天氣的多變隔缀,一年四季中晴雨傘的使用頻率十分高题造,所以共享晴雨傘還是有一定的市場(chǎng)需求。 小編在兩廣地區(qū)...
    張_dbc8閱讀 3,444評(píng)論 0 0