Предположим, у меня есть RESTful HATEOAS API с конечной точкой /posts
, в которой перечислены сообщения с ярлыком запроса /posts/new
.Как запросить API, чтобы обнаружить /posts/new
?
Мои идеи:
1) Запрос /posts
и получение ссылок из атрибута _links
(иперечисленные сущности требуют дополнительных затрат):
GET /posts
{
"docs": [
...
]
"_links": {
"new": { "rel": "posts", "href": "/posts/new" }
}
}
2) Укажите это в корне API вместе со списком ресурсов:
GET /
{
"resources": {
"posts": {
"_links": {
"self": { "rel": "posts", "href": "/posts" }
"new": { "rel": "posts", "href": "/posts/new" }
}
}
}
}
3) Я не должен использовать запрос /posts/new
, а вместо этого использовать /posts
и параметры запроса.Однако, если я изменю свою серверную логику, мне придется изменить и клиентскую логику, и это будет соединение клиент-клиент.Например:
- Новые сообщения будут запрашиваться клиентом с помощью какого-либо параметра
timestamp > (today - 30)
- Я ввожу свойство
draft
и изменяю свое представление о том, что новыми являются только сообщения с timestamp > (today - 30) && draft = false
- Мне нужно сменить клиента, чтобы добавить ограничение черновиков
Примечание: сообщения - это всего лишь пример, который я спрашиваю в общем.