Senior
Мижоздун буйрутмаларынын тизмесин алуу үчүн API долбоорлоо керек, фильтрлөө, сорттоо жана баракчалоо менен. Кайсы эндпоинттер, параметрлер, жооп коддору жана келишим структурасын сунуштайсыз?
sobes.tech AI
AIден жооп
Для API получения списка заказов клиента с фильтрацией, сортировкой и пагинацией я бы предложил следующий дизайн:
Эндпоинт
GET /api/customers/{customerId}/orders
Параметры запроса
status— фильтр по статусу заказа (например,pending,completed)dateFrom,dateTo— фильтрация по диапазону дат заказаsortBy— поле для сортировки (например,date,amount)sortOrder— направление сортировки (ascилиdesc)page— номер страницы (начиная с 1)pageSize— количество элементов на странице
Пример запроса
GET /api/customers/123/orders?status=completed&dateFrom=2023-01-01&sortBy=date&sortOrder=desc&page=2&pageSize=20
Коды ответов
200 OK— успешный ответ с данными400 Bad Request— неверные параметры запроса404 Not Found— клиент с таким ID не найден500 Internal Server Error— ошибка сервера
Структура ответа (JSON)
{
"page": 2,
"pageSize": 20,
"totalPages": 5,
"totalItems": 95,
"orders": [
{
"orderId": "abc123",
"date": "2023-02-15T10:30:00Z",
"status": "completed",
"amount": 1500.50,
"items": [
{"productId": "p1", "quantity": 2, "price": 500.00},
{"productId": "p2", "quantity": 1, "price": 500.50}
]
},
...
]
}
Такой дизайн обеспечивает гибкость фильтрации и сортировки, удобную навигацию по страницам и понятный контракт для клиента API.