Sobes.tech
Назад к вопросам
Middle
3

Задача REST API: поиск книги в электронной библиотеке по частичным данным (автор, название, год неизвестен), пагинация при большом количестве результатов.

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

Для задачи поиска книги в электронной библиотеке по частичным данным (автор, название, год неизвестен) с пагинацией можно спроектировать REST API следующим образом:

  1. Параметры запроса:

    • author (опционально) — часть или полное имя автора
    • title (опционально) — часть или полное название книги
    • year (опционально) — год издания
    • page — номер страницы
    • pageSize — количество результатов на страницу
  2. Обработка запроса:

    • На сервере формируется запрос к базе данных с фильтрами по переданным параметрам. Если параметр не передан — фильтр не применяется.
    • Поиск по частичным данным реализуется через операторы LIKE или полнотекстовый поиск.
  3. Пагинация:

    • Используется LIMIT и OFFSET (или курсоры) для выборки нужного количества записей.
    • В ответе возвращается список книг, а также метаданные: текущая страница, общее количество страниц или общее количество результатов.
  4. Пример запроса:

GET /api/books?author=Толстой&title=война&page=2&pageSize=10
  1. Пример ответа:
{
  "page": 2,
  "pageSize": 10,
  "totalResults": 57,
  "books": [
    {"id": "123", "title": "Война и мир", "author": "Лев Толстой", "year": 1869},
    ...
  ]
}

Такой подход обеспечивает гибкий поиск по неполным данным и удобную навигацию по результатам.