#rest
#rest
Вопрос:
Я пытаюсь разработать API, который уравновешивает рекомендуемые методы RESTful с общим удобством использования, и одна вещь, с которой я борюсь, — это разработка служебных методов для вычисления вещей.
В частности, для домашнего пивоварения есть много вещей, которые пивовар хочет вычислить во время процесса: цвет, горечь, ABV и т. Д. Я думаю, достаточно просто иметь /calculators
конечную точку с результирующими GET
возвращаемыми доступными калькуляторами:
- /калькуляторы/1
- /калькуляторы/2
хотя в этом случае возврат, безусловно, более удобен для пользователя:
- /калькуляторы/abv
- /калькуляторы/ibu
Как должен GET
выглядеть ресурс on a calculator? Должны ли значения, составляющие вычисление, быть параметрами URL ( /calculators/abv?og=1.050amp;fg=1.021
)? Каков соответствующий код ответа / ответа, когда необходимые параметры не предоставлены или указана недопустимая комбинация параметров? Существует ли более разумный дизайн, отличный от ресурса для каждого типа вычисления, который я указал выше?
Ответ №1:
Есть несколько кодов ответа, которые вы могли бы использовать, 400 — это общая «ошибка клиента», так что это будет один из них. Вы также можете включить тело, чтобы объяснить, что не так.
То, как вы сформировали запрос get, кажется мне достаточно разумным, трудно сказать, поскольку это немного надуманный пример.
Для простых вычислений этот формат может работать нормально. Для более сложных вычислений вы можете рассмотреть возможность использования одного аргумента, который кодирует все вычисления, подумайте 6 * 9 ^ 10 / 6
.