🔷 Пример задачи на проектировани JSON - массивы [] 🔷Списки обычно нужны при получении данных. Но иногда и для других операций.
Когда мы работаем со списками, то при проектировании JSON обращаем внимание на следующее:1. Есть список - нужна или понадобится пагинация (limit, offset, count).
2. Название списка - рекомендуется множественное число ("cars": []).
3. Список содержит меньше элементов, чем полный объект car, поэтому возвращаем необходимый и достаточный минимум в ответе API (всё, что связано с отображаемыми данными на карточках + с фильтрами).
4. Чем меньше вложенных структур у элементов {} внутри списка [], тем лучше. Убирать лишнюю вложенность по воможности.
5. Рекомендуется сохранять структуру одиночного объекта JSON для удобства клиента.
👉 Пример:Метод получения списка автомобилей
GET https://rentacar-project.com/api/public/v1/cars
Пример JSON для списка:
{ "limit": 10,
"offset": 0,
"count": 235,
"cars": [
{
"id": "b3fd9d8c4-8f6a-4e8f-b7e9-2d8f7b9a0d4c",
"brand": {
"id": "f4d8e4a6-8f29-4e60-b8c7-3c6a2dbf8c61",
"name": "Mercedes-Benz"
},
"class": {
"id": "d5a6e4b8-9b7a-4e92-82f6-b3a6f7b8e0c5",
"name": "Премиум"
},
"model": "CLA AMG",
"publicCode": "10293847",
"year": 2021,
"gearbox": "auto",
"currentRentalOffice": {
"id": "a3b9f2d4-7b2a-41e5-8b3e-4c7d3f5e8e3b",
"name": "Москва, Центральная",
"address": "г. Москва, ул Центральная, 123"
},
"rentalTerms": {
"startDate": "2024-10-24",
"endDate": "2024-10-27",
"dailyRate": 8000,
"totalPrice": 24000
},
"pictureId": "e2c4d6e1-8f1e-43a9-8f2e-4d2f7b8e0b5a"
},
{
"id": "d7cc0a8c4-8f6a-4e8f-b7e9-2d8f7b9a0d6d",
...
...
...
"pictureId": "a3b7a9e1-8f1e-43a9-8f2e-4d2f7b8e0c6d"
}
]
}
#RestApiGA