13

HAL 仕様で説明されている CURIE を見てきました。一見すると、URI のテンプレートを提供する方法のように見えます。ただし、上のドキュメントにアクセスするために使用できることが目立つように言及されていることもわかりますrel。どちらですか?それは単なるテンプレートメカニズムですか?良いユースケースの例はありますか?

また、以下は CURIE の合法的な使用になりますか? それとも、ドキュメントを提供するためにのみ使用する必要がありrelますか?

    { 
        "id": 1,
        "name": "Social Media Bundle",
        "_links": {
            "self": {
                "href": "http://my.api.com/bundles/1"
            },
            "curies": {
                "name": "bundle",
                "href": "http://my.api.com/bundles/1{rel}"
                "templated": true
            },
            "bundle:channels": {
                "href": "/channels"
            }
        }
    }

ここbundle:channelsは に展開されhttp://my.api.com/bundles/1/channelsます。

4

2 に答える 2

8

HAL 仕様の 7 ページによると、curies は特定のリソースのドキュメントをリンクする手段として推奨されています。

カスタム リンク関係タイプ ([RFC5988] の拡張関係タイプ)
は、Web ブラウザーで逆参照されたとき に、ターゲット リソースの意味および/または動作
に関する関連ドキュメントを HTML ページの形式で提供する URI である必要があります。 これにより、API の発見
可能性が向上します。

これらの URI を簡潔にするために、CURIE 構文 [W3C.NOTE-curie-20101216] を使用してもよい (MAY)。 CURIE は、ルートリソース オブジェクト
の関係タイプ「curies」を持つ一連のリンク オブジェクトを介して、HAL ドキュメント内で確立されます。 これらのリンクには、トークン「rel」
を持つ URI テンプレートが含まれており、「name」プロパティによって名前が付けられます。

{
  "_links": {
    "self": { "href": "/orders" },
    "curies": [{
      "name": "acme",
      "href": "http://docs.acme.com/relations/{rel}",
      "templated": true
    }],
    "acme:widgets": { "href": "/widgets" }
  }
}

上記は、関係「http://docs.acme.com/relations/widgets」が CURIE 構文によって「acme:widgets」に省略されることを示しています。

CURIE 仕様自体は、リソースの文書化とは特に関係がなく、コンパクトな URI を有効にするように設計されています。

あなたの質問に答えるために、仕様の私の解釈は、HAL のコンテキストではなく、キュリー構文を合法的に使用したことを示唆しています。

于 2015-01-26T17:21:00.630 に答える