1

RESTful サービス API の設計に関する 1 つの問題。どのように行うのが適切な方法なのかわかりません。いくつかの提案をお願いします。

私のシナリオはこんな感じです。ユーザー リソースと許可リソースがあります。

http://www.sample.com/rest/users
http://www.sample.com/rest/permissions

ユーザーは複数の権限を持つことができます。1 つの権限を多くのユーザーに使用できます。それは多対多の関係です。

通常、パーミッションはユーザーに属していると言えるので、次のような API があります。

http://www.sample.com/rest/users/{userId}/permissions

パーミッションとユーザーの間に関係を構築したい場合、2 つのオプションがあります。

  1. 最初に POST:http://www.sample.com/rest/permissions をパーミッションの本文で使用し、次に POST: http://www.sample.com/rest/users/{userId}/permissionsを一連のパーミッション ID で使用できます。このように設計された他の残りの API があるかどうかはわかりません。

  2. 次のような 1 つの API のみを使用できます http://www.sample.com/rest/users/{userId}/permissions。この方法では、オプション 1 で説明した 2 つのことを行います。欠点は、作成したアクセス許可を再利用できないことです。1 人のユーザーが複数のアクセス許可を持つことができるように見えますが、1 つのアクセス許可は 1 人のユーザーによってのみ使用されます。これは最初の設計に従います。 . しかし、それはユーザーにとって本当に簡単です。

このトピックに関する経験があれば、どんな提案も歓迎します。

4

3 に答える 3

3

パーミッション オブジェクトが複雑で個別のエンティティのように見える場合 (または、パーミッション オブジェクトをユーザー間で共有する必要がある場合) は、別のパーミッション URL を使用します。パーミッション「オブジェクト」が単なるrwx文字列などである場合、スタンドアロン エンティティを導入する価値はありません。一方、アクセス許可オブジェクトがより複雑なもの (たとえば、フォルダーのリストに関連付けられたアクセス許可のリスト) である場合は、それを別のエンティティとして保存し、そのために別の URL を使用することが理にかなっている場合があります。

于 2013-08-07T16:03:48.747 に答える