Skip to content

patihomirov/librarium

Repository files navigation

Учебная программа librarium

Данная программа реализует сервис отвечающий следующим требованиям:

  • принимает запросы по gRPC типа GetAuthor string и GetBooks string;
  • запрашивает требуемые данные в базе mySQL;
  • возвращает по gRPC данные типа []string.

В состав проекта входят следующие файлы и каталоги: Основные файлы:

  • ./cmd/main.go - головной пакет сервиса
  • ./cmd/main_test.go - пакет для тестирования сервиса
  • ./server/server.go - пакет с обработчиками запросов от gRPC
  • ./database_access/database_access.go - пакет с инструкциями по взаимодействию с базой данных
  • ./api/proto - файлы конфигурации gRPC сервиса
    • librarium.pb.go
    • librarium_grpc.pb.go

Вспомогательные файлы:

  • ./proto
    • /librarium.proto - настройки для создания конфигурации gRPC сервиса
    • /compile instructions.txt - командные строки для генерации файлов gRPC
  • ./database_dump
    • /librarium_base.sql - дамп базы данных в редактируемом виде для тестирования работы серсиса
    • /DB instructions - команды для выгрузки и установки базы данных в mySQL, создания пользователя
  • ./client/client.go - пакет с функциями клиента, применяемый для тестирования сервиса
  • Evans instructions - команды для запуска Evans и подключения по gRPC к нашему сервису
  • Dockerfile - файл конфигурации Docker (не реализовано)
  • ./screenshots - скриншоты работы программы

Для самостоятельной установки на ОС Ubuntu необходимо выполнить следующие действия:

  • установить golang
  • установить mySQL версии не ниже 8
  • установить Evans (https://github.com/ktr0731/evans) или другую программу для тестирования подключения к сервису
  • загрузить базу данных librarium_base.sql в mySQL, предоставить к базе данных доступ для пользователя web c паролем 123
  • скопировать настоящий репозиторий и собрать командой go build ./cmd/main.go
  • запустить файл ./main
  • запустить Evans указать ему путь к librarium.proto и установить подключение с сервисом на порт 8080
  • выполнить команды call GetAuthor для следующих значений:
    • Пикник на обочине
    • Хроники Нарнии
    • Сила и слава
  • выполнить команды call GetBooks для следующих значений:
    • Стругацкие
    • Льюис
    • Экзюпери

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published