簡記------RESTful API

RESTful API

  1. 產(chǎn)生背景

    • 前后端分離后,前端調(diào)用指定API獲取到后端的數(shù)據(jù),再展示出來扒腕,而隨著前端設備的多樣性(手機,平板萤悴,桌面電腦瘾腰,其他專用設備等等),需要一種統(tǒng)一的機制覆履,方便前后端通信蹋盆,所以RESTful就是這樣一種API設計理念,可以通過一套統(tǒng)一的接口為web硝全,ios等提供服務栖雾。
  2. REST

    • REST 即:Representational State Transfer的縮寫,“表現(xiàn)層狀態(tài)轉(zhuǎn)化”伟众。
    • 理解:
      • 1.url定位資源
      • 2.客戶端和服務端之間傳遞這種資源的表現(xiàn)層
      • 3.客戶端通過HTTP動詞(get,post,delete,put,patch)對服務端資源進行操作析藕,實現(xiàn)變現(xiàn)層狀態(tài)轉(zhuǎn)化
  3. RESTful 六大原則

    1. C-S架構(gòu)

      • 數(shù)據(jù)存儲在Server端,Client端只需要使用凳厢。前后端分離使得Client端的代碼可移植性增強账胧,Server端擴展性增強,兩端單獨開發(fā)先紫,互相不干擾治泥。
    2. 無狀態(tài)

      • http請求本身就是無狀態(tài)的,基于C-S架構(gòu)遍愿,客戶端每一次請求都要帶著充分的信息讓服務端識別富玷。服務端根據(jù)請求的參數(shù)荆忍,無需保存客戶端的狀態(tài),將響應正確的返回給客戶端准脂,大大提高了效率和性能。
      • 缺點就是客戶端的每一次請求都需要帶上相同重復的信息表明自己的身份和狀態(tài)眼俊,會造成傳輸?shù)娜唠s意狠,但這些對于性能和使用來說,可以忽略不計疮胖。
    3. 統(tǒng)一的接口

      • REST架構(gòu)的核心內(nèi)容环戈,統(tǒng)一的接口對于RESTful服務來說非常必要,前端只需要關注接口澎灸,接口的可讀性增加院塞,使用人員方便調(diào)用
      • REST接口約束為:
        • 資源識別:通過url標識你要操作的資源
        • 請求動作:通過請求動作(post,put,get等)標識執(zhí)行的操作
        • 響應信息:通過返回的狀態(tài)碼來表示這次請求的執(zhí)行結(jié)果
    4. 一致的數(shù)據(jù)格式

      • 服務端返回的數(shù)據(jù)要么是XML,要么是json性昭,要么是狀態(tài)碼

      • 比如請求一條微博信息拦止,服務端響應信息應該包含這個微博相關的其他URL,客戶端就可以進一步利用這些URL發(fā)起請求獲取感興趣的信息,就像分頁,第一頁里可以獲取下一頁的URL就是這個原理

      • 下面以返回數(shù)據(jù)json格式為例簡單講一下數(shù)據(jù)格式

      • 返回數(shù)據(jù)通常含有一些字段:

        • code-----HTTP響應狀態(tài)碼汹族,

        • status------包含文本“success”(其他) |'fail ‘ (狀態(tài)碼5××) |'error'(狀態(tài)碼4××)

        • message-----狀態(tài)值為’fail‘和’error‘時生效萧求,顯示錯誤信息

        • data-----包含響應的數(shù)據(jù),狀態(tài)值為fail或者error顶瞒,data僅包含錯誤原因或者異常名稱或者null也可以夸政。

        • 比如下面就是一個響應成功的json格式

        • {
            "code": 200,
            "message": "success",
            "data": {
              "userName": "123456",
              "age": 16,
              "address": "beijing"
            }
          }
          
    5. 可緩存

      • 在萬維網(wǎng)上,客戶端是可以緩存頁面的響應內(nèi)容榴徐,因此響應都應該顯式或隱示的定義為可緩存守问,如果不可以緩存也要避免客戶端拿舊數(shù)據(jù)或者臟數(shù)據(jù)來響應,緩存得當可以減少客戶端和服務端的交互坑资,進一步的優(yōu)化性能耗帕。
    6. 按需編碼,可定制代碼

      • 服務端可選擇臨時給客戶端下發(fā)一些功能代碼讓客戶端來執(zhí)行袱贮,從而定制和擴展客戶端的某些功能仿便。比如服務端可以返回一些 Javascript 代碼讓客戶端執(zhí)行,去實現(xiàn)某些特定的功能字柠。提示:REST架構(gòu)中的設計準則中探越,只有按需編碼為可選項。如果某個服務違反了其他任意一項準則窑业,嚴格意思上不能稱之為RESTful風格钦幔。
  4. HTTP動詞

    • GET:從服務器取出資源
    • POST:在服務器新建一個資源
    • PUT: 在服務器更新資源(客戶端提供改變后的完整資源)
    • PATCH:在服務器更新資源(客戶端提供改變的屬性)
    • DELETE:從服務器刪除資源
  5. HTTP狀態(tài)碼

    • 1××:不常用,表示請求未成功
    • 2××:成功
    • 3××:重定向常柄,原有文件永久搬走或者臨時出走
    • 4××: 客戶端的請求可能出錯了
    • 5××: 服務端內(nèi)部出錯了

借鑒文章

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲤氢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子西潘,更是在濱河造成了極大的恐慌卷玉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喷市,死亡現(xiàn)場離奇詭異相种,居然都是意外死亡,警方通過查閱死者的電腦和手機品姓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門寝并,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腹备,你說我怎么就攤上這事衬潦。” “怎么了植酥?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵镀岛,是天一觀的道長弦牡。 經(jīng)常有香客問我,道長漂羊,這世上最難降的妖魔是什么驾锰? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮走越,結(jié)果婚禮上稻据,老公的妹妹穿的比我還像新娘。我一直安慰自己买喧,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布匆赃。 她就那樣靜靜地躺著淤毛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪算柳。 梳的紋絲不亂的頭發(fā)上低淡,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音瞬项,去河邊找鬼蔗蹋。 笑死,一個胖子當著我的面吹牛囱淋,可吹牛的內(nèi)容都是我干的猪杭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼妥衣,長吁一口氣:“原來是場噩夢啊……” “哼皂吮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起税手,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蜂筹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芦倒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艺挪,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年兵扬,在試婚紗的時候發(fā)現(xiàn)自己被綠了麻裳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡周霉,死狀恐怖掂器,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俱箱,我是刑警寧澤国瓮,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響乃摹,放射性物質(zhì)發(fā)生泄漏禁漓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一孵睬、第九天 我趴在偏房一處隱蔽的房頂上張望播歼。 院中可真熱鬧,春花似錦掰读、人聲如沸秘狞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烁试。三九已至,卻和暖如春拢肆,著一層夾襖步出監(jiān)牢的瞬間减响,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工郭怪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留支示,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓鄙才,卻偏偏與公主長得像颂鸿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子咒循,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

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