RESTネストリソースのベストプラクティスは何ですか?
私の知る限り、個々のリソースには正規パスが1つだけ必要です。次の例では、適切なURLパターンは何でしょうか? 例として、会社の残りの表現を取り上げます。この架空の例では、各会社が 0以上の部門を所有し、各部門が 0以上の従業員を所有しています。 関連する会社がなければ、部門は存在できません。 従業員は、関連する部門なしでは存在できません。 これで、リソースパターンの自然な表現がわかります。 /companies 会社のコレクション -新しい会社のプットを受け入れます。コレクション全体を手に入れよう。 /companies/{companyId}個々の会社。GET、PUT、DELETEを受け入れる /companies/{companyId}/departments新しいアイテムのPOSTを受け入れます。(社内に部門を作成します。) /companies/{companyId}/departments/{departmentId}/ /companies/{companyId}/departments/{departmentId}/employees /companies/{companyId}/departments/{departmentId}/employees/{empId} 制約を考えると、各セクションでは、少し深く入れ子にするとこれは理にかなっていると感じます。 ただし、GETすべての会社のすべての従業員をリスト()にしたい場合、問題が生じます。 そのためのリソースパターンは、/employees(全従業員のコレクション)に最も密接にマッピングされます。 それは、/employees/{empId}もしそうなら、同じリソースを取得するための2つのURIがあるので、私も持っている必要があるということですか? または、スキーマ全体をフラット化する必要があるかもしれませんが、それは従業員がネストされたトップレベルのオブジェクトであることを意味します。 基本レベルで/employees/?company={companyId}&department={deptId}は、最も深くネストされたパターンとまったく同じ従業員のビューが返されます。 リソースは他のリソースによって所有されているが、個別にクエリ可能でなければならないURLパターンのベストプラクティスは何ですか?