Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

📚 Простое API для читалки

Регистрации и авторизации нет. Можно добалять книги, редактировать их, получать все книги, конкретную книгу по id, добавлять цитаты к книгам, добавлять теги к книге.


🔹 Получить все книги

GET /books/

📥 Ответ:

[
    {
        "id": 11,
        "title": "По ком звонит колокол",
        "coverImage": "SGVsbG8gV29ybGQ=",
        "tags": [
            "Роман",
            "Художественная литература",
            "Нобелевская премия",
            "Эрнест Хэмингуэй"
        ]
    }
]

Если теги не назначены — tags = null


🔹 Получить книгу по ID

GET /books/{id}

📥 Ответ:

{
    "title": "Великий Гэтсби",
    "description": "Книга Френсиса Скотта Фицджеральда...",
    "coverImage": "SGVsbG8gV29ybGQ=",
    "bookText": "Сегодня был тот день, когда Дэзи почти дотягивала до Дэзи его мечтаний, и дело было не в...",
    "quotes": [
        "Цитата 1",
        "Цитата 2"
    ]
}

Если цитаты не назначены — quotes = null


🔹 Добавить книгу

POST /books/

📤 Тело запроса:

{
    "title": "По ком звонит колокол",
    "description": "Книга Эрнеста Хэмингуэя...",
    "coverImage": "SGVsbG8gV29ybGQ=",
    "bookText": "Он лежал на устланной сосновыми иглами бурой земле, уткнув подбородок в скрещённые руки, а ветер шевелил над ним верхушки высоких сосен..."
}

🔹 Добавить цитаты к книге

PATCH /books/quotes/{id}

📤 Тело запроса:

{
    "quotes": [
        "А потому никогда не посылай узнать, по ком звонит колокол, он звонит и по тебе.",
        "А пока вся твоя жизнь, или все то время, что тебе отпущено...",
        "Каждый должен делать то, что может, но делать правильно"
    ]
}

🔹 Добавить теги к книге

PATCH /books/tags/{id}

📤 Тело запроса:

{
    "tags": [
        "Роман",
        "Художественная литература",
        "Нобелевская премия"
    ]
}

⚠️ Если тег уже существует — он будет взят из БД. Если нет — будет создан. Здесь лучше получить все теги из следующего запроса и предоставить их в виде списка, чтобы избегать ошибок в написании, т.к. теги определяются по имени.


🔹 Получить все теги

GET /tags/

📥 Ответ:

{
    "allTags": [
        "Роман",
        "Художественная литература",
        "Нобелевская премия"
    ]
}

🔹 Изменить книгу

PUT /books/{id}

📤 Тело запроса:

{
    "title": "По ком звонит колокол",
    "description": "Книга Эрнеста Хэмингуэя про Роберта Джордана, отправленного к партизанам, чтобы...",
    "coverImage": "SGVsbG8gV29ybGQ=",
    "bookText": "Он лежал на устланной сосновыми иглами бурой земле, уткнув подбородок в скрещённые руки..."
}

🔹 Удалить книгу

DELETE /books/{id}


💡 Все изображения должны быть в формате base64

❗Проблемы и недоработки

Нет запросов для администратора и поэтому нельзя работать с тегами и цитатами отдельно от книг. Новые теги можно добавить только добавив их к определенной книге. Это совсем неправильно. Хорошо было бы добавить запросы для админа, в которых добавляются теги, а при работе с книгами разрешить использовать только теги, которые уже находятся в БД. Пока не очень хочу переделывать это.



About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors