Я создаю REST API, где клиент может запрашивать данные для определенных идентификаторов.Пример запроса выглядит следующим образом:
/api/data?ids=1&ids=2&ids=3&start=2019-01-01&end=2019-02-12
Это соответствует спецификации Open API для передачи массива: https://swagger.io/docs/specification/describing-parameters/#query-parameters
Предположим теперь, что идентификаторы 2 и 3 существуют и возвращают 1 запись и 0 записейсоответственно.Предположим также, что идентификатор 1. не существует.
Что следует вернуть клиенту?Я склоняюсь к возвращению OK 200 со словарем, в котором идентификатор 3 будет присутствовать в качестве ключа, но не содержать данных, тогда как идентификатор 1 вообще не будет присутствовать.
Примерно так:
{
{
id=2,
records=[154334, 324343]
},
{
id=3,
records=[]
}
}
Тогда клиенту придется сделать вывод, что идентификатор 1 недействителен.И когда я пытаюсь выполнить запрос для получения метаданных с идентификатором 1:
/api/entity/1
, я получу 404 Not Found.
В общем, я хотел бы найти хорошие решения для обработкиответы и коды состояния на запросы API REST, где запрос дает частичное совпадение.