Skip to content

Latest commit

 

History

History
105 lines (91 loc) · 6.63 KB

api_docs.md

File metadata and controls

105 lines (91 loc) · 6.63 KB

Web API поиска по библиотеке

Поиск книги (/api/search)

Параметры запроса

Обязательно должно выполнятся хотя бы одно из условий:

  1. count < 1000
  2. author, title, serie: есть хотя бы один alphanumeric символ
  3. Указан либо book_id, либо author_id, либо serie_id
  • start: Для разделения по страницам, кол-во книг, которые надо пропустить
  • count: Кол-во книг, которые надо получить
  • author: Имя автора книги (можно использоваать wildcard FTS)
  • title: Название книги (можно использоваать wildcard FTS)
  • serie: Название серии, в которую входит эта книга. (можно использоваать wildcard FTS)
  • genre: Точное название жанра fb2 (список: http://flisland.net/g)
  • rate_min: Минимальный рейтинг книги (включительно)
  • rate_max: Максимальный рейтинг книги (включительно)
  • lang: Язык книги. Например: ru, en, cs и т.д.
  • book_id: ID книги
  • author_id: ID автора книги
  • serie_id: ID серии, в которую входит книга
  • order: По какому параметру сортировать. Допустимы: book_id, rate, size, serno, title. Если указан serno, то необходимо также указать фильтр по serie_id

Результат

Возвращается json с тремя ключами:

  • parameters: Список параметров запроса в виде словаря
  • time: Словарь, хранящий время выполнения запроса в секундах
    • processing: Время, потраченное на обработку результата
    • sql: Время, потраченное на получение данных из БД
    • total: Общее время, может быть не равно сумме двух других
  • result: Сам результат поиска.
    • add_date: Время добавления книги
    • authors: Список авторов книги, содержит объекты с id и name.
    • book_id: ID книги
    • file: Путь к файлу из которого была получена информация о книге и ID книги
    • genres: Список жанров, содержит объекты с id и name.
    • keywords: Ключевые слова книги, содержит объекты с id и name.
    • lang: Язык книги, две буквы
    • rate: Рейтинг книги, если его нет, то -1
    • series: Серии, в которую входит книга, содержит объекты с id, name и serno.
    • size: Размер файла книги в байтах
    • title: Название книги
    • deleted: Помечена ли книга как удаленная. Такие книги всегда находятся в самом конце, независимо от указанной сортировки.

Получение книги (/api/get)

Параметры запроса

Обязательно должен быть указан book_id: ID книги, которую надо получить. Также можно указать encoding: Указывает как закодировать book и image. Может быть base64 (стандартно) или ascii85

Результат

Возвращается json из двух ключей.

  1. fb2: Информация из fb2. Любой из параметров, кроме book_id и book может быть null. Информация может не совпадать с информацией в базе.
    • annotation: Аннотация к книге
    • author: Информация об авторе
      • firstname: Имя
      • lastname: Фамилия
      • middlename: Отчество
    • book: fb2.zip книги, закодированный в base64 или ascii85 (см. параметр encoding)
    • book_id: ID книги
    • image: Обложка книги, закодированная в base64 или ascii85 (см. параметр encoding)
    • imageMime: mime-type формата обложки
    • lang: Язык книги
    • publish_info: Информация об издании.
      • bookName: Название книги
      • city: Город, где издано
      • isbn: ISBN книги
      • publisher: Название издательства
      • sequenceName: Название серии
      • sequenceNum: Номер книги в серии
      • year: Год издания
    • serie: Название серии
    • serno: Номер книги в серии
  2. db: Информация из базы. Тоже самое, что и result при поиске книги.

Получение авторов книги (/api/getAuthors)

Параметры запроса

Единственный и обязательный параметр book_id: ID книги, у которой надо получить авторов.

Результат

Возвращается json, состоящий из списка словарей с двумя ключами:

  • author_id: ID автора
  • name: Имя автора

Получение имени автора (/api/getAuthorName)

Параметры запроса

Единственный и обязательный параметр author_id: ID автора, у которого надо получить имя.

Результат

Возвращается имя автора в кавычках

Получение имени серии (/api/getSerieName)

Параметры запроса

Единственный и обязательный параметр serie_id: ID серии, у которой надо получить имя.

Результат

Возвращается имя серии в кавычках