Skip to content

DenisPopkov/RusseLiteratureServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SSO

Protobuf контракт: https://github.com/DenisPopkov/protos

Архитектура

sso
├── cmd.............. Команды для запуска приложения и утилит
│   ├── migrator.... Утилита для миграций базы данных
│   └── sso......... Основная точка входа в сервис SSO
├── config........... Конфигурационные yaml-файлы
├── internal......... Внутренности проекта
│   ├── app.......... Код для запуска различных компонентов приложения
│   │   └── grpc.... Запуск gRPC-сервера
│   │   └── rest.... Запуск REST-сервера
│   ├── config....... Загрузка конфигурации
│   ├── domain
│   │   └── models.. Структуры данных и модели домена
│   ├── grpc
│   │   └── auth.... gRPC-хэндлеры сервиса Auth
│   ├── lib.......... Общие вспомогательные утилиты и функции
│   ├── services..... Сервисный слой (бизнес-логика)
│   │   ├── auth
│   │   ├── core
│   └── storage...... Слой работы с данными
│       └── sqlite.. Реализация на SQLite
├── migrations....... Миграции для базы данных
├── storage.......... Файлы хранилища, например SQLite базы данных
└── tests............ Функциональные тесты

База данных

image

Запросы

GET

GET http://localhost:4041/authors
Authorization: Bearer token
[
  {
    "id": 1001,
    "name": "Фёдор Достоевский",
    "image": "https://iili.io/JwdlP5B.png",
    "clip": 1001,
    "isFave": true
  },
  {
    "id": 1002,
    "name": "Лев Толстой",
    "image": "https://iili.io/Jwdl6JV.png",
    "clip": 1002,
    "isFave": false
  },
  {
    "id": 1003,
    "name": "Антон Чехов",
    "image": "https://iili.io/Jwdlg0x.png",
    "clip": 1003,
    "isFave": false
  },
  {
    "id": 1004,
    "name": "Всеволод Крестовский",
    "image": "https://iili.io/Jwdlsb1.png",
    "clip": 1004,
    "isFave": false
  }
]

GET http://localhost:4041/articles
Authorization: Bearer token
[
  {
    "id": 2001,
    "name": "Как Толстой Войну и мир писал",
    "description": "В СТАТЬЕ РАССКАЗЫВАЕМ ПРО ТО КАК ТОЛСТОЙ ВОЙНУ И МИР ПИСАЛ",
    "image": "https://iili.io/JwdliOP.png",
    "clip": 2001,
    "isFave": true
  },
  {
    "id": 2002,
    "name": "Реализм в литературе",
    "description": "В СТАТЬЕ РАССКАЗЫВАЕМ ПРО АВТОРОВ И КЛЮЧЕВЫЕ ПРОИЗВЕДЕНИЯ В ЭТОМ НАПРАВЛЕНИИ",
    "image": "https://iili.io/JwdlbqJ.png",
    "clip": 2002,
    "isFave": false
  }
]

GET http://localhost:4041/poets
Authorization: Bearer token
[
  {
    "id": 3001,
    "name": "Мир Анны Ахматовой",
    "image": "https://iili.io/JwdlQzF.png",
    "clip": 3001,
    "isFave": true
  },
  {
    "id": 3002,
    "name": "Ночь, улица, фонарь, аптека...",
    "image": "https://iili.io/Jwdltsa.png",
    "clip": 3002,
    "isFave": false
  }
]

GET http://localhost:4041/clip?clipId=1001
Authorization: Bearer token
{
  "id": 1001,
  "text": [
    {
      "title": "ранние годы",
      "text": "Биография Федора Михайловича Достоевского началась 11 ноября 1821 года. За почти шесть десятков лет писатель прошел сложный путь: сидел в тюрьме, был на каторге, эмигрировал, проигрывался, скрывался от кредиторов, терял родных и близких. Но никогда не переставал писать. Все события из жизни Достоевский прямо или косвенно переносил в свои книги. Наверное, поэтому герои его произведений настолько отличаются друг от друга и принадлежат к разным социальным слоям"
    },
    {
      "title": "дебют",
      "text": "В конце мая 1845 года Федор Достоевский закончил свой первый роман «Бедные люди». Произведение восторженно приняли законодатели литературной моды тех лет — Николай Некрасов и Виссарион Белинский. Некрасов назвал начинающего писателя «новым Гоголем» и опубликовал роман в своем альманахе «Петербургский сборник"
    },
    {
      "title": "каторга",
      "text": "Впечатления от жизни в Омском остроге Федор Достоевский выразил в «Записках из Мертвого дома». Это произведение русской литературы стало одним из первых, рассказывающих о каторге и жизни заключенных, их быте и нравах. Для современников Достоевского «Записки из Мертвого дома» стали настоящим откровением. Иван Тургенев сравнивал произведение с «Адом» Данте, Александр Герцен — с фреской «Страшный суд» работы Микеланджело. О жанре «Записок» литературоведы спорят до сих пор: с одной стороны, произведение строится на воспоминаниях автора и могло бы считаться мемуарами, с другой — Достоевский ввел в повесть вымышленного героя и не всегда придерживался фактической и хронологической точности"
    }
  ],
  "quiz": {
    "id": 1001,
    "question": "Какие черты характеризуют творчество Федора Достоевского?",
    "description": "В тексте отмечается, что все события из жизни Достоевского прямо или косвенно переносились им в свои книги. Это подчеркивает важность личных переживаний и жизненного опыта автора в его творчестве",
    "image": "https://iili.io/JwdlP5B.png",
    "answers": [
      {
        "id": 1001,
        "text": "отражение личных переживаний и жизненного пути автора, включая сложные события из его биографии",
        "isRight": true
      },
      {
        "id": 1001,
        "text": "вдохновение идеями романтизма, подчеркивание романтических идеалов и образов",
        "isRight": false
      },
      {
        "id": 1001,
        "text": "детальное описание природы и ее влияния на характеры и сюжет произведений",
        "isRight": false
      }
    ]
  },
  "image": "https://iili.io/JwdlP5B.png"
}

GET http://localhost:4041/quiz?quizId=1001
Authorization: Bearer token
{
  "id": 1001,
  "question": "Какие черты характеризуют творчество Федора Достоевского?",
  "description": "В тексте отмечается, что все события из жизни Достоевского прямо или косвенно переносились им в свои книги. Это подчеркивает важность личных переживаний и жизненного опыта автора в его творчестве",
  "image": "https://iili.io/JwdlP5B.png",
  "answers": [
    {
      "id": 1001,
      "text": "отражение личных переживаний и жизненного пути автора, включая сложные события из его биографии",
      "isRight": true
    },
    {
      "id": 1001,
      "text": "вдохновение идеями романтизма, подчеркивание романтических идеалов и образов",
      "isRight": false
    },
    {
      "id": 1001,
      "text": "детальное описание природы и ее влияния на характеры и сюжет произведений",
      "isRight": false
    }
  ]
}
GET http://localhost:4041/user
Authorization: Bearer token
{
  "name": "Фёдор Достоевский",
  "image": "https://iili.io/JwdlbqJ.png"
}

PATCH

PATCH http://localhost:4041/authors?authorId=1001
Content-Type: application/json
Authorization: Bearer token
{
  "body": "Response body is empty"
}

PATCH http://localhost:4041/articles?articleId=2001
Authorization: Bearer token
{
  "body": "Response body is empty"
}

PATCH http://localhost:4041/poets?poetId=3001
Authorization: Bearer token
{
  "body": "Response body is empty"
}

DELETE

DELETE http://localhost:4041/user
Authorization: Bearer token
{
  "body": "Response body is empty"
}