Конечная точка RESTful API для пользовательских данных ответа - PullRequest
0 голосов
/ 28 мая 2018

Я создаю RESTful API, где у меня есть ресурс с именем solar_systems.У solar_sytems есть столбцы id (int), system_size (int), system_cost (int) со многими другими столбцами.

Я понимаю, что конечные точки API будут -

/ v1 / solar-systems - длявсе системы

/ v1 / solar-systems / {id} - для одной системы

И я должен передать параметры запроса для фильтра, поиска, сортировки и т. д.

Но что будет лучше для конечных точек API, если мне понадобятся какие-то пользовательские данные, например, если мне нужно среднее значение system_cost для каждого размера system_size.

Будет ли глупо, если я использую - / v1 / solar-systems /средняя стоимость системы?

Пожалуйста, мне нужно ваше мнение из вашего опыта.

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Будет ли глупо, если я использую /v1/solar-systems/average-system-cost?

В архитектуре REST не реализован какой-либо дизайн URI (см. Примечания ниже)) .Это полностью зависит от вас, чтобы выбрать URI, которые лучше идентифицируют ваши ресурсы.

Однако я бы, вероятно, использовал параметры запроса , чтобы выбрать поля, которые будут возвращены в ответе.Что-то вроде /v1/solar-systems?fields=average-system-cost.


Примечание 1: Архитектура REST, описанная в главе 5 диссертации Роя Т. Филдинга,определяет набор ограничений, которым должны следовать приложения, которые следуют такой архитектуре. Однако в нем ничего не говорится о том, какими должны быть URL-адреса.

Примечание 2: С другой стороны, примеры из популярной статьи , написанной Мартином Фаулером, объясняющей модель, определенную Леонардом Ричардсоном , предлагают структуру URL, которая выглядит дружественной и легкой для чтения.

0 голосов
/ 28 мая 2018

Совсем не глупо использовать / v1 / солнечные системы / средняя стоимость системы

Легко увязнуть в том, что технически средняя стоимость системы не являетсяресурс.Но это часть данных, которые полезно извлечь.В конечном итоге цель REST - сделать API понятными и читаемыми.Определенная конечная точка, которая получает полезную часть данных, определенно попадает в эту область.

...