2016-08-09 2 views
0

Я несколько нового для RESTful API Практика проектирования и поиск помощи. Модель данных, с которой я работаю, подробно описывает объект верхнего уровня (например, книгу), содержащий список вложенных объектов (например, главы).
Каждая глава упорствовал в своем собственном праве и имеет simple_name поле, которое устанавливается в unique=True (то есть. Только один Глава с Chapter.simple_name = «ch_01» может существовать).REST API POST - Проверьте, существует ли каждый вложенный объект. Если нет, создайте новый. Если да, верните существующий объект

Сценарий: пользователь добавляет книги ("myBook_v1"), содержащие главы, "ch_01", "ch_02", и "ch_03". Затем пользователь редактирует свою книгу и на следующий день POSTs «myBook_v2», содержащие главы «ch_01», «ch_02», «ch_03», и «ch_04». Предположим, что главы «ch_01», «ch_02», «ch_03» не изменяются от исходного POST.

В настоящее время, поскольку простое-требуется, чтобы быть уникальным, второй POST не проходит проверку уникальности и ответ возвращается ошибка пользователя.

Вопрос: Соответствует ли следующая реализация REST принципам дизайна? И, самое главное, это хороший (безопасный) дизайн?

Реализация: После бандероль, проверить каждый Chapter.simple_name уникальности. Если Chapter.simple_name уже существует в базе данных, пропустите создание. Если он не существует, создайте новую главу. Верните полную сохраненную Книгу с сочетанием вновь созданных глав и уже существующих глав. Единственный критерий для принятия решения о создании нового или использования существующего заключается в том, существует ли уже заданное пользователем simple_name для главы в базе данных.

ответ

Смежные вопросы