Ограничение внешнего ключа в REST API - PullRequest
1 голос
/ 09 ноября 2019

Я разрабатываю RESTful API для приложения планировщика поездки и не знаю, как применить ограничение внешнего ключа при создании ресурса. У меня есть два ресурса: Trip и User. Ресурс Trip выглядит следующим образом:

{
  "id": 1,
  //some other attributes
  "tripParticipants":[ 
    {
      "id": 1
    }
   ]
}

, где tripParticipants - это набор User идентификаторов. TripParticipants должен содержать только созданный Users (под созданным, я имею в виду, хранится в базе данных).

У меня проблема с конечной точкой POST /trips/{id}/tripParticipants для добавления элементов в коллекцию. Что я должен вернуть, если User с данным идентификатором не существует в моей базе данных? Возвращение HTTP 404 кода состояния для операции POST выглядит странно. Стандарт REST определяет некоторые решения для этого варианта использования?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2019

В этой ситуации можно использовать два кода состояния HTTP:

Оба варианта верны для вашего сценария. Лично я бы пошел с 422.

0 голосов
/ 09 ноября 2019

Для отдыха вы следуете стандартным кодам статуса Http, поэтому 404 - это соответствующий код для отдыха.

Это коды состояния, которые вы могли бы использовать https://www.restapitutorial.com/httpstatuscodes.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...