Sobes.tech
Senior

Mijozning buyurtmalar ro'yxatini filtrlash, saralash va sahifalash bilan olish uchun API ni loyihalash kerak. Qaysi endpointlar, parametrlar, javob kodlari va shartnoma tuzilishini taklif qilasiz?

sobes.tech AI

AIdan javob

Для 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.