次のような階層構造の値を設定できる、ある種の Web API を開発しています。
<ROOT>
<COLLECTION_ELEMENT>
<SIMPLE_ELEMENT /> // alias = nail
<SIMPLE_ELEMENT /> // alias = hammer
<COLLECTION_ELEMENT>
<SIMPLE_ELEMENT /> // red
<SIMPLE_ELEMENT /> // green
</COLLECTION_ELEMENT>
</COLLECTION_ELEMENT>
....
<COLLECTION_ELEMENT>
<SIMPLE_ELEMENT /> // alias = nail
<SIMPLE_ELEMENT /> // alias = hammer
<COLLECTION_ELEMENT>
<SIMPLE_ELEMENT /> // red
<SIMPLE_ELEMENT /> // green
</COLLECTION_ELEMENT>
</COLLECTION_ELEMENT>
</ROOT>
ご覧のとおり、要素にはと他のCOLLECTION_ELEMENT
を含めることができる2 つのタイプがあります。階層構造の各フィールドにはエイリアスがあり、実際にはパートナーに公開されます (階層の構造を公開したくありません)。エイリアスは構造ごとに一意です。SIMPLE_ELEMENT
COLLECTION_ELEMENT
SIMPLE_ELEMENT
問題は、ネストされた に属する を更新/設定したいときに、パートナーに適切な API を提供する方法が本当にわからないことですCOLLECTION_ELEMENT
。例えば、
現在COLLECTION_ELEMENT
、ルート レベルに 2 つの があります。2 番目のエントリhammer
の値を更新したい。COLLECTION_ELEMENT
今のところ、そのような構造を使用していますhammer[1][2] - newHammerValue
。
1
hammer
2 つの親コレクション要素内の最初のオカレンスを設定する必要があることを示します。それはかなりうまく機能しますが、ネストされたレベルが多数あるより複雑な構造がある場合は、このようなものにすることができますhammer[1][2][3][5][2]
。その場合、すべてのエラーとインデックスの不一致を処理するのはかなり難しく、パートナーに何のアイデアも与えません。彼は今設定しています。
問題は、WebApi
わかりやすい名前を使用して、構造自体をユーザーに公開せずに、階層構造の値を設定する方法です。何か案は?