В моих моделях у меня есть Event
s и User
s. Каждый Event
имеет атрибут leader
, который указывает на User
, однако не всегда требуется хост, и в этом случае хост является нулевым.Выявление отношений в API REST (как пользователь ссылается на объекты?)
В моей API:
GET /users/
возвращает список всех пользователей
GET /users/3/
возвращает пользователя 3 инфо, {"name": "John", "href": "https://stackoverflow.com/users/3/"}
GET /events/
возвращает список всех событий
GET /events/2/host/
должен возвращать пользователю кто является хозяином для события 2. (скажем, это пользователь 3)
Должен ли я вернуть {"href": "https://stackoverflow.com/users/3/"}
, просто ссылку на пользователя? Или представление самого пользователя, {"name": "John", "href": "https://stackoverflow.com/users/3/"}
?
Допустим, я пошел с первым вариантом. Как изменить пользователя?
PUT /events/2/host/ json={"href": "https://stackoverflow.com/users/2/"}
- это имеет смысл? Затем мой сервер должен будет проанализировать конечную точку, чтобы определить, какой идентификатор пользователя является новым хостом, а затем назначить это в базе данных. Кажется немного неэлегантным, но Flask имеет способ проанализировать конечную точку в аргументах. Но правильно ли это сделать?
И наконец, в ресурсе GET /events/2/
, я думал о наличии атрибута "host":{"href": "/events/2/host/"}
в представлении. Имеет ли это смысл? И если нет хоста, атрибут href
вообще не будет, просто пустой словарь, назначенный host
.