Лучший способ представить выполнение операции с ассоциацией RESTful? - PullRequest
0 голосов
/ 19 июля 2011

Скажем, у меня есть ресурс "пользователь" и ресурс "группа". RESTful их представления будут выглядеть так:

/user/:id
/group/:id

Но что, если я хочу выполнить операцию над связью между двумя ресурсами? Например, если я хотел указать, что пользователь # 1 хочет присоединиться к группе # 1. Как бы я представлял, что присоединение группы № группы № 1 должно выполняться для пользователя № 1?

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Например, если я хочу указать, что пользователь # 1 хочет присоединиться к группе # 1. Как бы я представлял, что присоединение группы № группы № 1 должно выполняться для пользователя № 1?

Я бы, вероятно, сделал POST для чего-то вроде / groups / 1 / members или / users / 1 / memberships. Если вы хотите разрешить пользователю присоединяться к нескольким группам одновременно, может иметь смысл предоставить альтернативу, такую ​​как PUT для / users / 1 / memberships.

У вас есть несколько вариантов, но все зависит от рабочего процесса, которого вы хотите достичь. Я думаю, что это помогает забыть о REST на некоторое время. Подумайте о создании простого приложения для браузера. Где ссылки и формы? Каждая страница в вашем веб-приложении представляет собой HTML-представление ресурса. У него есть ссылки и формы. Замените это альтернативными представлениями, но сохраните ссылки и формы.

После того, как вы пройдете подобное упражнение, вы сможете лучше понять, имеет ли смысл POST для / groups / 1 / members.

John

0 голосов
/ 19 июля 2011

Хорошо .. Что содержит / group /: id?

Я предполагаю, что он где-то будет содержать коллекцию пользователей?

/ group /: id / users /: id - будетпредставлять мое членство в группе.

Майк Браун

...