譯 HAL 超文字應用語言

2022-06-21 03:00:11 字數 2567 閱讀 2365

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基...