Rest-Homework---記一次raml

前言

這是我第一次寫raml猾封,一開始雜亂無章沒有從宏觀角度去思考,什么都想加進(jìn)去抛丽,導(dǎo)致越來越復(fù)雜谤职,后來在李老師指導(dǎo)下抽絲剝繭,才看清楚raml真正的意義亿鲜。

摘要

RAML 是一種基于HTTP-API的定義語言. 體現(xiàn)了所有對象傳輸狀態(tài)的原則 . RAML基于YAML ,依靠標(biāo)準(zhǔn)和最佳實踐從而編寫更高質(zhì)量的API . 生成全面的用戶文檔 .
RAML通過一個格式來提供規(guī)范的接口.作為API提供者和使用者之間的合約.用戶可使用文檔實現(xiàn)客戶端和服務(wù)器的交互.

組織結(jié)構(gòu)

  • 基本信息 解釋了如何描述核心API的方面,如它的名稱允蜈、標(biāo)題、位置(URI)和違約蒿柳。
  • 數(shù)據(jù)類型 描述了一種通過簡化模型API數(shù)據(jù)類型系統(tǒng),也包括JSON和XML模式饶套。
  • 資源 描述了如何指定一個API的資源和嵌套的資源,以及在任何URI URI參數(shù)模板,所有一類事物從宏觀講都是一類垒探,同一類中事物具有不同的性質(zhì)妓蛮,但是raml不考慮性質(zhì)uri指向的就是資源,所有的操作方法只是對uri所指向的資源的操作圾叼,和uri本身并沒有關(guān)系蛤克。
  • 方法 描述了如何指定API的資源上的method,以及他們的請求頭,查詢參數(shù)和請求,一般的有四個主要的method夷蚊,post添加构挤,get查詢,put更新惕鼓,delete刪除筋现。
  • 響應(yīng) 描述API規(guī)范的反應(yīng),包括狀態(tài)碼、媒體類型,響應(yīng)頭和響應(yīng),一般有200-請求成功矾飞,404- 請求的資源不存在彻犁,500-服務(wù)器內(nèi)部錯誤,凰慈。
  • 資源類型和特征 描述可選機制使用RAML資源類型和特征描述資源,避免不必要的重復(fù)在一個API的定義和促進(jìn)一致性和重用,在對同一路徑下的資源進(jìn)行操作可以合并操作驼鹅,對于get和post要理解輸入什么微谓,輸出什么。
  • 安全 描述了機制中可用RAML指定一個API的安全方案输钩。
  • 注釋 描述了擴(kuò)展機制RAML規(guī)范通過定義強類型的注釋和應(yīng)用規(guī)范豺型。
    Includes,Libraries 覆蓋以及擴(kuò)展 描述了一個API的定義可能是由外部化定義文件,如何打包成庫集合的定義,如何分離和覆蓋層的元數(shù)據(jù)的RAML文檔,以及一個API規(guī)范與附加功能可以擴(kuò)展。

出現(xiàn)的問題以及解決方法

1.首先拿到需求時买乃, 沒有仔細(xì)對需求分析姻氨,需求中的三個接口,個人卻又加入太多的個人定義剪验,直接導(dǎo)致后面越來越復(fù)雜無法進(jìn)行下去肴焊,其實首先拿到需求應(yīng)該是做減法,先從滿足最簡單功能的開始功戚,設(shè)計raml的初衷就是化繁為簡娶眷,如同一張總施工圖,指導(dǎo)每一步啸臀,但不過問每一步具體實現(xiàn)届宠。

2.對資源定義理解不夠深刻,人為給資源進(jìn)行分類乘粒,沒有對整體進(jìn)行把握豌注,比如我和plant都是同一個屬性,當(dāng)定義了plant是研發(fā)部領(lǐng)導(dǎo)的時候才有上下級關(guān)系灯萍,查找我只要在plant下面進(jìn)行檢索轧铁。

3.uri理解的偏差,raml里面包含,uri和method竟稳,uri就好比指的是資源的路徑属桦,method才是對資源操作的方法,這個理解是最重要的他爸,之前我定義的/inputnode聂宾,/findnode,/allnode诊笤,相當(dāng)于在三個路徑里面對三個文件進(jìn)行操作系谐,只要理解到uri是路徑,需求里所有的操作都是指向一個路徑操作。

4.需求中輸入節(jié)點返回節(jié)點及其子孫節(jié)點纪他,/api/Nodes/{valuename},這里面valuename就是要查詢的節(jié)點

/api/Nodes:
   /{valuename}:
       get:
         description: Get Total Value Xml information
         displayName: ValueNodeXml
         responses:
           200:
             body:
               application/xml:
                 type: HierarchyNode
           404:
           500:

5.http主要有四種方法鄙煤,post添加,get查找茶袒,put更新梯刚,delete刪除,在uri路徑上進(jìn)行操作方法選擇上由于之前理解的偏差出錯

6.在現(xiàn)有的需求里post不會有404薪寓,在get里面才有404亡资,但是也要看實際情況,例如

7.post是輸入body里是輸入的資源向叉,存儲成功返回200锥腻,服務(wù)器錯誤返回500

  post:
      description: Obtain storage resources
      displayName: StorageResource
      body:
         application/json:
           type: HierarchyPath
      responses:
         200:
         500:

總結(jié)反思

我是半路轉(zhuǎn)行培訓(xùn)學(xué)的java,計算機相關(guān)的基礎(chǔ)知識知道甚少母谎,數(shù)據(jù)結(jié)構(gòu)一知半解瘦黑,培訓(xùn)后總是把學(xué)到的東西作為一種標(biāo)準(zhǔn)來對比新接觸的東西,這是一件很可怕的事情奇唤,在編程的行業(yè)的沒有什么是一成不變的標(biāo)準(zhǔn)幸斥,時刻都在變換的行業(yè)里,就好比自己是一個小杯子裝滿了各個地方收集來水冻记,以至于現(xiàn)在再也裝不下更多睡毒,只有放空自己,才能裝得下更多的東西冗栗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末演顾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子隅居,更是在濱河造成了極大的恐慌钠至,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胎源,死亡現(xiàn)場離奇詭異棉钧,居然都是意外死亡,警方通過查閱死者的電腦和手機涕蚤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門宪卿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人万栅,你說我怎么就攤上這事佑钾。” “怎么了烦粒?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵休溶,是天一觀的道長代赁。 經(jīng)常有香客問我,道長兽掰,這世上最難降的妖魔是什么芭碍? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮孽尽,結(jié)果婚禮上窖壕,老公的妹妹穿的比我還像新娘。我一直安慰自己杉女,他們只是感情好艇拍,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宠纯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪层释。 梳的紋絲不亂的頭發(fā)上婆瓜,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音贡羔,去河邊找鬼廉白。 笑死,一個胖子當(dāng)著我的面吹牛乖寒,可吹牛的內(nèi)容都是我干的猴蹂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼楣嘁,長吁一口氣:“原來是場噩夢啊……” “哼磅轻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逐虚,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤聋溜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后叭爱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撮躁,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年买雾,在試婚紗的時候發(fā)現(xiàn)自己被綠了把曼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡漓穿,死狀恐怖嗤军,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情器净,我是刑警寧澤型雳,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響纠俭,放射性物質(zhì)發(fā)生泄漏沿量。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一冤荆、第九天 我趴在偏房一處隱蔽的房頂上張望朴则。 院中可真熱鬧,春花似錦钓简、人聲如沸乌妒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撤蚊。三九已至,卻和暖如春损话,著一層夾襖步出監(jiān)牢的瞬間侦啸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工丧枪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留光涂,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓拧烦,卻偏偏與公主長得像忘闻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恋博,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理齐佳,服務(wù)發(fā)現(xiàn),斷路器债沮,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • 一說到REST重虑,我想大家的第一反應(yīng)就是“啊,就是那種前后臺通信方式秦士∪崩鳎”但是在要求詳細(xì)講述它所提出的各個約束,以及如...
    時待吾閱讀 3,415評論 0 19
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,756評論 25 707
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評論 6 342
  • 重點:生命周期和啟動模式以及IntentFilter的匹配規(guī)則分析隧土。 正常情況下Activity的生命周期分析 o...
    伯納烏大王閱讀 259評論 0 0