Skip to content

Sa1ZeR/BookParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ЗАДАЧА

Набор данных книги: название, автор, описание, год, изображение обложки, ISBN, количество страниц, жанр, теги. Необходимо написать сервис, который парсит книги с книжных сайта (Google Books), а также сохраняет их в БД.

Фичи

  • Легкое масштабирование сервиса для парсинга любого другого книжного сайта путем расширения BaseParserService
  • присутствует апи, которое позволяет получить информацию о: книгах, авторах, тегах, жанрах, а также запуск парсера (документацию об апи смотреть ниже)

Документация по API

API книг

[GET] /api/books/{id} - позволяет получить книгу по id

[GET] /api/books/filter/ - позволяет получить список книг по определенным фильтрам (можно использовать от 0 до N параметров)

  • Поддерживаются следующие параметры:

title - Название книги. Тип: String

ISBN - ISBN книги. Тип: Long

year - год издания книги. Тип: Integer

yearLower - Искать до/после. Используется совместно с параметром year, так и без него. Тип: Boolean

pages - кол-во страниц книги. Тип: Integer

pagesLower - Искать до/после. Используется совместно с параметром pages, так и без него. Тип: Boolean

authors - искать по авторам книги (использует id авторов из БД) Тип: массив Long

genres - искать по жанрам книги (использует id жанров из БД) Тип: массив Long

tags - искать по тегам книги (использует id тегов из БД) Тип: массив Long

Пример запроса:

/api/books/filter?resultPerPage=7&offset=0&yearLower=false&year=2000&authors=3

Ответ:

[
    {
        "id": 3,
        "name": "Материалы для биографии князя А. Д. Кантемира",
        "desc": "С введение и примечаниями профессора В.Н. Александренко.",
        "year": 2013,
        "img": "http://books.google.com/books/content?id=qPb3BQAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
        "pages": 355,
        "ISBN": 9785446062331,
        "parsedFrom": "GOOGLE_BOOKS",
        "created": "2023-01-04",
        "updated": "2023-01-04",
        "authors": [
            {
                "id": 3,
                "name": "Майков Л. Н."
            }
        ],
        "genres": [],
        "tags": []
    }
]

[POST] api/books/parse/ - позволяет спарсить книги с сайта

type - Тип парсера. Доступны: GOOGLE_BOOKS

API авторов

[GET] /api/authors/all - позволяет получить всех авторов

[GET] /api/authors/{id} - позволяет получить автора по id

API жанров

[GET] /api/genres/all - позволяет получить все жанры

[GET] /api/genres/{id} - позволяет получить жанр по id

API тегов

[GET] /api/tags/all - позволяет получить все теги

[GET] /api/tags/{id} - позволяет получить тег по id

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages