Что такое RESTful способ получить ресурсы от всех детей? - PullRequest
0 голосов
/ 29 августа 2018

Предположим, у меня есть следующий api, где vin - Идентификационный номер транспортного средства и принадлежит одному автомобилю.

GET /fleets/123/cars/55/vin
GET /fleets/123/cars/55/history

И я хочу получить все выигрыши для всех машин для автопарка. Что было бы предпочтительным среди этих:

GET /fleets/123/cars/all/vin
GET /fleets/123/cars/*/vin
GET /fleets/123/vins
GET /fleets/123/cars/vins

Первые два сохраняют иерархию и делают контроллер более интуитивным. Три последних ощущения нарушают последовательность.

Являются ли какие-либо из них предпочтительными или есть лучший способ?

1 Ответ

0 голосов
/ 29 августа 2018

Это в основном вопрос, основанный на мнении. Здесь нет единственно верного пути, так что вы получите мое мнение.

Я не уверен, что такое vin, но если это тип ресурса и есть коллекция vins как дочерний элемент ресурса fleet, я бы ожидал, что он будет жить здесь:

GET /fleets/123/vins

Это сообщает мне, что vin не является подчиненным автомобиля. Это свое дело, и я получаю все выигрыши за определенный флот.

Тот факт, что vin также существует как подчиненный автомобиля (для меня), не имеет к этому никакого отношения. Для меня совершенно логично, что для тех, кто здесь живет:

GET /fleets/123/cars/55/vin

Точно так же, если бы я смоделировал последние 2 apis как 2 функции, я бы назвал их:

findVinsForFleet(fleetId: number);
findVinForCar(fleetId: number, carId: number);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...