Является ли нарушением спецификации JSON-API разрешение автоматически создавать обратные отношения?
Мне нужно создать ресурсы, которые, когда я связываю A с B в отношениях, автоматически связывают B с A. Таким образом, я могу пройти A, чтобы найти все его B и найти родителя A из B. Однако Я не хочу POST / PATCH для 2 отношений, чтобы получить это право. Я хочу установить отношения один раз.
Теперь я знаю, что это деталь реализации того, как сервер поддерживает ссылки / ссылки, а также как устанавливается поведение, но я хочу построить API таким образом, чтобы он не нарушал спецификации.
При условии, что у меня есть ресурсы Книги и Авторы. Книги есть у авторов и у авторов есть книги. Вопрос в том, когда я связываю автора с книгой, мне нужно создать и обратные отношения. Является ли нарушение спецификации каким-либо образом предположить, что это обратное отношение может быть автоматически создано простым выполнением одного POST-отношения с ресурсом Books?
Например, начиная с книги.
{
"data": {
"type": "books", "id": 123, "attributes": ...,
"links": { "self": "/books/123" },
"relationships": {
"self": "/books/123/relationships/authors",
"related": "/books/123/authors"
}
}
}
И автор
{
"data": {
"type": "authors", "id": 456, "attributes": ...,
"links": { "self": "/authors/456" },
"relationships": {
"self": "/authors/456/relationships/books",
"related": "/authors/456/books"
}
}
}
Если я установлю ссылку из книги на автора с POST на /books/123/relationships/authors
{
"data": [{ "data": "authors", "id": "456" }]
}
Нужно ли явно делать то же самое для Автора 456 как POST для /authors/456/relationships/books
?
{
"data": [{ "data": "books", "id": "123" }]
}
Или я могу позволить серверу построить отношения для меня, чтобы я мог избежать второго POST и просто увидеть автоматическое обратное отношение в GET /authors/456/relationships/books
?