私は現在、3種類のデータを持つアプリケーションのAPIを作成しています。 Files
,Tags
およびPersons
である。これらはすべて日常的にリンクされています。 File
には、多くの場合、Tags
とPersons
が添付されています。多対多リレーションシップのためのRESTfulなAPIの構造
問題は、RESTful APIを使用して実際に接続する方法がわかりません。 Persons
とTags
はFile
に不可欠なので、それ以上の要求はなく自動的に返されます。
ここで私はFiles
のために、今で探していた構造の例です:
GET /files
GET /files/:id
POST /files
PUT /files/:id
PATCH /files/:id
そしてTags
用:
GET /tags
GET /tags/:id
POST /tags
PUT /tags/:id
PATCH /tags/:id
そしてPersons
用:
GET /persons
GET /persons/:id
POST /persons
PUT /persons/:id
PATCH /persons/:id
として、あなたが見ることができます、彼らはまったく同じ、intentio私のAPIを簡単に文書化することができます。しかし、多対多の関係では、Tag
またはPerson
をFile
にリンクする方法はわかりません。
POST /files/:id/tags
DELETE /files/:id/tags/:id
をしかし、それは少し不格好なようだ:
は、私はこれを検討していました。
自分の状況に適した構造は何ですか?
これは実際にそれを行う良い方法ですが、問題はそのように1つのアイテムをリンク解除する方法がわかりません。 – Forest
実際には 'File'リソースを' GET'しないと、他のリソースとの関連性についての情報を持っていない限り、このアプローチではこれを行うことはできません。そうすれば、最初のデザインは、このような状況に適しています。 –
ダムニット。私は両方を非常に慎重に見ていき、私が調べていた他のいくつかのAPIで、何が最もうまくいくかを決めます。 – Forest