Я работаю в системе викторины с использованием Spring Data Rest, который имеет следующую структуру:Spring запрос POST остальных данные
1 Викторин содержит много вопросов
1 Вопрос содержит много Ответов
Мы хотим, чтобы представить это со следующей структурой URL:
GET/Тест-сервис/викторины/1/вопросы/1/ответы - Получает все ответы, принадлежащие на вопрос 1 в викторине 1.
POST/Тест-сервис/викторины/1/questions/1/answers - добавляет ответ на вопрос 1 с в викторине 1.
POST/Тест-сервис/викторины/1/вопросы - Добавляет вопрос викторины 1.
В настоящее время, когда мы пытаемся и POST к вышесказанному, мы получаем HTTP 40-то код ,
Все идентификаторы в указанных выше URL уникальны. Далее, с 2 различных викторин со ссылкой на тот же вопрос, может вызвать проблемы:
/Тест-сервис/викторины/1/вопросы/1 - будет HTTP OK
/Тест-сервис/викторины/2/вопросы/1 - будут связаны с HTTP NOT FOUND, с учетом вышеизложенного.
У нас есть интерфейс репозитория для всех 3, викторин, вопросов и ответов.
В соответствии с this post и другими, которые мы видели, мы знаем, что вы можете использовать POST для/quiz-service/questions и либо включать ссылку на викторину, либо сделать второй запрос в конечную точку викторины, добавив вопрос. Несмотря на это, есть ли вообще способ, которым мы можем это сделать?
Спасибо заранее
Какова конкретная ошибка, которую вы получаете? – Makoto
Ну, мой совет будет заключаться в том, чтобы использовать больше конечных точек, а не потому, что то, что вы предлагаете, не обязательно нужно делать, но в долгосрочной перспективе это будет очень запутанным. Попробуйте следовать шаблонам REST и установить конечную точку для каждого, то есть одного для добавления ответов, а один для добавления вопросов и т. Д. – breakline
Вы можете использовать это как руководство для разработки других API-интерфейсов более интуитивно. Особенно в разделе «Использовать URL-адрес и действия RESTful» http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api – cherit