FantLab-API icon indicating copy to clipboard operation
FantLab-API copied to clipboard

Документация API портала fantlab.ru

Fantlab-API

Публичный репозиторий по API библиографического краудсорсингового портала fantlab.ru.
Предназначен для:

  • документирования текущего состояния API
  • взаимодействия программистов FL и пользователей API через систему Issues/Pull Requests

Вводная информация

  1. API работает в тестовом режиме, текущая версия: v0.9.* (см.историю изменений). До версии 1.0 возможны большие изменения в выдачах.
  2. Домен для запросов - https://api.fantlab.ru.
  3. Возможные HTTP-коды ответов: 200 (успех), 404 (ошибка запроса).
  4. Из-за особенностей серверного языка (бэкенд написан на Perl) в выдачах уделено мало внимания типизации данных, например, вместо числа может прийти строка (e.g. "work_id":"1"). Это не баг. В подобных случаях в документации указан не действительный тип поля (строка), а тот, к которому можно автоматически привести (e.g. work_id: Int).
  5. В текстовых данных могут встретиться LINK-тэги - отсылки на сущности базы - для удобства для этого используются формат html-тэга a href). Пример: “notes”:”Переиздание сборника рассказов <a href=\”/work320\”>Стивен Кинг «Бегущий человек»</a>”. Полный список сущностей базы: autor, art, dictor, translator, person, work, edition, series, publisher, film, award, contest, user, topic, article, blog, blogarticle. Также могут встретиться и bb-тэги вида [user] и т.п.. По возможности от них избавляемся, но они могут до сих пор проскакивать.
  6. В случае, если тип поля в документации обозначен как null, это означает одно из двух: либо поле может вообще отсутствовать, либо поле есть, но его значение равно null. Впрочем, с точки зрения конечного пользователя это одно и то же.
  7. Для удобства описания были введены дополнительные типы данных: Boolean ("0" (false) / "1" (true)), Date (строка в формате yyyy-MM-dd), DateTime (строка в формате yyyy-MM-dd HH:mm:ss), Url (ссылка на файл/картинку, обычно без протокола).
  8. Если какое-нибудь поле может присутствовать или быть неравным null только при определенном переданном параметре, то в описании типа в этом случае указан соответствующий параметр (например, # [biblio_blocks] список произведений). Если поле не равно null при любом переданном параметре, в описании типа указан параметр [any].

Содержание

  1. Константы
  2. Поиск
    • Миникарточки элементов базы
      • Получение миникарточек по поисковому запросу
      • Получение миникарточек по их ID
    • Поиск по библиографической базе
      • Общий поиск
      • Поиск авторов
      • Поиск произведений
      • Поиск изданий
      • Поиск книжных серий
      • Поиск премий
      • Поиск персон
      • Поиск издательств
      • Поиск фильмов
      • Поиск статей
      • Поиск терминов
    • Поиск по форуму
    • Поиск по блогам
  3. Автор
    • Список авторов
    • Основная информация
    • Список изданий
    • Список наград
    • Список отзывов
  4. Произведение
    • Основная информация
    • Расширенная информация
    • Список отзывов
    • Похожие произведения (Аналоги)
    • Выставление/удаление оценки
    • Классификация
    • Добавление похожего произведения
    • Удаление похожего произведения
  5. Издание
    • Основная информация
    • Расширенная информация
  6. Премии
    • Список премий
    • Премия
    • Конкурс
  7. Переводчик
    • Основная информация
    • Список наград
  8. Диктор
  9. Издательства
    • Список издательств
    • Топ-30 издательств
  10. Термины
    • Список терминов
    • Термин
  11. Пользователь
    • Основная информация
    • Список оценок
    • Список отзывов
    • Узнать id по login
  12. Отзывы
    • Отзывы на все произведения автора
    • Отзывы на одно произведение
    • Отзывы посетителя
    • Новые отзывы на сайте
    • Плюсование/минусование отзыва
  13. Новости
    • Список новостей сайта
  14. Новинки и планы издательств, авторов
    • Новинки издательств
    • Планы издательств
    • Планы авторов
  15. Авторизация
    • OAuth
    • Основная
  16. Подписки
    • Подписка на оповещения о новых произведениях/изданиях автора
    • Подписка на оповещения о новых изданиях с переводами переводчика
    • Отмена подписки на оповещения
    • Подписка на блог
    • Подписка на комментарии к статье в блоге
    • Подписка на новые сообщения в теме форума
  17. Книжные полки
    • Создание книжной полки
    • Удаление книжной полки
    • Содержимое полки произведений
    • Содержимое полки изданий
    • Содержимое полки фильмов
    • Добавление или удаление произведения с книжной полки
    • Добавление или удаление издания с книжной полки
    • Добавление или удаление фильма с книжной полки
    • Добавление комментария к item
  18. Личка
    • Отправка/сохранение в черновик сообщения
    • Подтверждение отправки черновика
    • Отмена отправки черновика
  19. Рекомендации
    • Удаление рекомендации в мусорку
    • Правка мусорки рекомендаций
  20. Форум
    • Плюсование/минусование поста
  21. Прочее
    • Теги, ссылки и пр.