Является ли нарушением спецификации JSON-API автоматическое создание отношений reverse?
Мне нужно создать ресурсы, которые, когда я связываю A с B в отношениях, автоматически связывают B с A. Таким образом, я могу пройти через A, чтобы найти все его B, и могу найти родителя A из B. Однако я не не хочу POST/PATCH для 2 отношений, чтобы получить это право. Я хочу установить отношения один раз.
Теперь я знаю, что это деталь реализации того, как сервер поддерживает ссылки/ссылки, а также как устанавливается поведение, но я хочу построить API таким образом, чтобы он не нарушал спецификацию.
Предполагая, что у меня есть ресурсы Книги и Авторы. У книг есть авторы, а у авторов есть книги. Вопрос в том, что как только я свяжу Автора с Книгой, мне также нужно создать обратную связь. Нарушает ли спецификация каким-либо образом предположение, что эта обратная связь может быть автоматически создана простым выполнением одной операции POST для связи ресурса Книги?
Например, начиная с книги.
{
"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
?