hal 是一種簡單的格式,它提供了一種一致且簡便的方法在 api 的資源之間進行超連結。
採用 hal 將使您的 api 易於探索,並且其文件很容易從 api 本身中發現。簡而言之,這將使您的 api 更易於使用,因此對客戶端開發人員更具吸引力。
使用適用於大多數程式語言的開源庫,可以輕鬆提供和使用採用hal的api。它也很簡單,您可以像處理其他json一樣處理它。
hal提供了一組約定以json或xml表示超連結。(hal文件的其餘部分只是普通的舊json或xml。)
不要使用臨時結構,也不要花費寶貴的時間來設計自己的格式;您可以採用hal的約定,並專注於構建和記錄構成api的資料和轉換。
hal 有點像計算機的 html,因為它是通用的,旨在通過超連結驅動許多不同型別的應用程式。不同的是,html 具有幫助"人工參與者"通過 web 應用程式實現其目標的功能,而 hal 旨在幫助"自動參與者"通過 web api 實現其目標。
話雖如此,hal實際上也非常人性化。其約定使 api 的文件可以從 api 訊息本身發現。這使得開發人員能夠直接進入基於 hal 的 api 並探索其功能,而無需將一些外部文件對映到其旅程的認知開銷。
下面的示例是如何使用 hal_json 表示訂單集合。需要查詢的事項:
,
"curies": [", "templated": true }],
"next": ,
"ea:find": ",
"templated": true
},"ea:admin": [, ]
},"currentlyprocessing": 14,
"shippedtoday": 20,
"_embedded": ,
"ea:basket": ,
"ea:customer":
},"total": 30.00,
"currency": "usd",
"status": "shipped"
}, ,
"ea:basket": ,
"ea:customer":
},"total": 20.00,
"currency": "usd",
"status": "processing"}]}
}
資源具有:
下面的影象大致說明了hal表示的結構:
hal 旨在構建 api,其中客戶端通過以下鏈結圍繞資源進行導航。
但是,鏈結關係不僅僅是hal中的標識字串。 它們實際上是url,開發人員可以遵循這些 url 來讀取給定鏈結的文件。 這就是所謂的「可發現性」。 這樣的想法是,開發人員可以輸入您的api,通讀可用鏈結的文件,然後通過api進行操作。
識別表示中的鏈結和嵌入資源
推斷目標資源的預期結構和意義
向目標資源發出哪些請求和表示訊號
在 http 上提供 hal 時,響應應包含相關的**型別名稱。content-type
hal 文件必須至少包含空資源。
空的 json 物件:
{}
在大多數情況下,資源應具有自己的uri
}
}
}
}
鏈結關係
鏈結有關係(又名)。"rel")。這表示特定鏈結的語義 - 含義。
鏈結 rels 是區分資源鏈結的主要方法。
}
}
api 可發現性
鏈結關係rels 應該是顯示有關給定鏈結的文件的 url,使它們"可發現"。url 通常相當長,並且有點討厭用作金鑰。為了繞過這一點,hal 提供了"curies",它們基本上是名為令牌,您可以在文件中定義,並用於以更友好、更緊湊的方式表達鏈結關係 uri,例如ex:widget
而不是。詳細資訊可在稍下一點的"curies"部分中提供。
資源可能有多個共享同一鏈結關係的鏈結。
對於可能具有多個鏈結的鏈結關係,我們使用鏈結陣列。
,]}}
"curies"幫助提供指向資源文件的鏈結。
hal 為您提供了乙個保留的鏈結關係"curies",您可以使用它來提示資源文件的位置。
"_links":
],"doc:latest-posts":
}
"curies"部分中可以有多個鏈結。它們帶有乙個"name"和模板化的"href",其中必須包含佔位符。
然後,鏈結可以在其「 rel」之前加上curies的名稱。將latest-posts鏈結與doc文件curies關聯,將導致鏈結「 rel」設定為doc:latest-posts。
爬蟲基礎 超文字
1.超文字,其英文名稱叫作 hypertext,我們在瀏覽棉裡看到的網頁就是超文字解析而成的,其網頁源 是一系列 html 裡面包含了一系列標籤,比如 img 顯示,p 指定顯示段落等 瀏覽器解析這些標籤後,便形成了我們平常看到的網頁,而網頁的源 html 就可以稱作超文字 例如,我們在 chrom...
關於《超文字》定義
1,超文字是用超連結的方法,將各種不同空間的文字資訊組織在一起的網狀文字。它更是一種使用者介面正規化,用以顯示文字及與文字之間相關的內容。現時超文字普遍以電子文件方式存在,其中的文字包含有可以鏈結到其他位置或者文件的鏈結,允許從當前閱讀位置直接切換到超文字鏈結所指向的位置。2,一種按資訊之間關係非線...
CRichEditCtrl 超文字編輯
一.常見問題 a.可以編譯,不能執行的 afxinitrichedit 此句不要忘了加 b.公升級預設的riched版本 預設的有一些bug 如 可在initinstance中新增 loadlibrary riched20.dll 最後注意 freelibrary 如果是cricheditview基...