5

ハイパーテキスト ドキュメント (おそらくHALを使用) 内のフォルダー内のサブフォルダーとドキュメントへのリンクを表現したいと思います。したがって、フォルダーを表すドキュメントには、親フォルダー、サブフォルダー、およびフォルダーに含まれるファイルへのリンクが必要です。親フォルダーの場合、 <link rel="up" href=".." > が簡単な選択のようです。ただし、サブフォルダーおよびフォルダーに含まれるドキュメントへのリンクに最も適しているものについてはわかりません。RFC-5988 で定義されているオプションがいくつかあります。ただし、フォルダーとファイルのツリーを表すのにどれが最も適切かはわかりませんでした。

自分なりの価値観を見出し、ドキュメントを作ることができました。例 (親しみやすいように HAL ではなく HTML 構文を使用):

...
<link rel="self" href="http://example.com/some/folder/">
<link rel="up" href="http://example.com/some/">
<link rel="file" href="image1.jpg">
<link rel="file" href="image2.png">
<link rel="folder" href="subfolder/">
...

カスタムの rel-attribute を使用すると、アプリケーションがこれらのドキュメントを明示的にサポートする必要があるという明らかな欠点があります。したがって、標準とベスト プラクティスに従うだけでアプリケーションが理解できるものを使用したいと考えています。

更新: AtomPub (RFC 5023) は、コレクションのメンバーへのリンクで rel="edit" を使用しているようです。彼らはサブコレクションの概念を持っていないと思います。RFC-5988 の rel="subsection" がオプションになる場合があります。

4

1 に答える 1

3

階層
の表現階層を表現する非常に一般的な方法の1つは、階層内のレベル間の親子関係の概念を使用することです。これにより、親子/子は任意の階層を表すことができるため、フォルダとドキュメントのみを表すことに縛られることなく、階層を非常に一般的に記述することができます。たとえば、DOMパーサーは、DOMが階層であるため、この概念を多用します。

階層が完全にバランスが取れていない場合(つまり、3レベルの深さ、および20レベルの深さのドキュメントを持つことができる)、コレクション(フォルダー)またはリーフのいずれかで、現在の「ノード」のタイプを知る必要があります。 (資料)。コレクションとリーフ、および親と子/子の概念を使用すると、必要なすべてのリンクの関係を簡単に示すことができます。

コンテンツタイプ
RESTインタラクションの最も重要な部分は、クライアントとサーバーの両方でのコンテンツタイプの明確な定義です。コンテンツタイプは、実際に必要なものに関してはかなりあいまいですが、目的のために、一般的なリソースの「形式」がHALであることを示すだけで、parentおよびおよびchildrel値の意味も定義します。

ほとんどの人は、コンテンツタイプが人間向けであることを忘れています。コンテンツタイプ定義のコンテンツではなく、コンテンツタイプの名前のみがユーザーエージェントにとって重要です。コンテンツタイプの定義は、開発者(または非常に賢いユーザーエージェント)が物事の解釈方法を決定するために使用されます。ユーザーエージェントは、名前を使用して解釈モードを切り替えます。

標準がすべてではない一般に、アプリケーションが独自のリソースを表現することは、表現を「標準」に押し込めようとすることよりも、アプリケーション
が必要とする方法で 表現することの方が重要です。アプリケーションで、、、およびを使用するのが最も理にかなっている場合は、必ずこれらのリンク関係を使用してください。唯一の注意点は、将来的に物事をどのように変えたいかについて真剣に考えることです。APIを変更するのは簡単なことではありませんが、新しいコンテンツタイプを導入し、古いコンテンツタイプを廃止することはそれほど難しくありません。upfolderfile

誤解しないでください。私はすべて標準に賛成ですが、その性質上、ほとんどの場合、現実の世界に遅れをとっています。適切な例として、RCFは物事の一般的な階層コレクションをうまく処理していないようです。

于 2012-10-31T13:05:17.503 に答える