1. リンク ヘルパー

リンク ヘルパー

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Web SDK には、REST API リンク (URL) の構築と解析を目的としたリンク ヘルパーがあります。

この記事で取り上げる例は 1 つのみですが、手順はすべてのリンクで同様です。 詳細な概要については、API のドキュメントを参照してください。

まず、リンクの解析と構築の機能について説明し、次にそれらの処理をリンク ヘルパーで実行する方法を紹介します。

リンク

Link オブジェクトは、Hypertext Application Language (HAL) 形式を使用してリソースへのリンクを表します。

リンクはテンプレート化できます。つまり、リンクを使用する前にバインドを必要とする変数を使用できます。 たとえば、エンティティのテンプレートである Link オブジェクトは次のようになります。

Template = true
Title = "Get the entity with the specified id"
Uri = "http://localhost:8080/api/entities/{id}{?culture,members,groups,renditions,nestedRelations,loadPermissions}"

次のように、このテンプレートをフェッチできます。

ApiRoutesDictionary routes = await client.Api.GetApiRoutesAsync();
Link entityByIdTemplate = routes[Constants.Api.EntityById.TemplateName];

Constants.Api.EntityById.TemplateName には "entity_by_id" を指定しています。

リンクの手動作成

ID が 1000 のリンクのような特定のリンクへのリンクを取得するには、次のように、その値を変数で指定する必要があります。

var mappings = new Dictionary<string, string> { { Constants.Api.EntityById.Id, "1000" } };
string assetUrl = entityByIdTemplate.Bind(mappings);

ディクショナリによって変数名が値にリンクされます。 Bind メソッドによって、変数がリンクの値に置き換えられ、値を指定していないオプションの引数が削除されます。

これにより、URL &quot;http://localhost:8080/api/entities/1000&quot; が文字列として作成されます。

Bind メソッドは、Stylelabs.M.Sdk.WebApiClient.Utilities からインポートできます。

リンクの手動解析

作成した URL は、Uri クラスの GetVariableValue メソッドを使用して解析できます。 この解析には、上記のリンク テンプレートも必要です。 このメソッドの結果は、次のように &quot;1000&quot; になります。これは前のセクションで入力した値と一致しています。

string assetId = new Uri(assetUrl).GetVariableValue(entityByIdTemplate, Constants.Api.EntityById.Id);

リンクの構築

リンクの手動解析には手間と時間を要することがあるので、リンク ヘルパーの使用をお勧めします。

次のスニペットでは、ID が 1000 のエンティティへのリンク オブジェクトが作成されます。

Link entityLink = await client.LinkHelper.EntityToLinkAsync(1000);

Web SDK を http://localhost:8080 に接続している場合、entityLink.Urihttp://localhost:8080/api/entities/1000 を指します。

リンクの解析

エンティティ リンクからエンティティ ID のみが返されるようにする場合は次のスニペットを使用します。

long? entityId = await client.LinkHelper.IdFromEntityAsync(entityLink);

上記で作成したリンクを渡すと、得られる結果は 1000 になります。

この記事を改善するための提案がある場合は、 お知らせください!