Учебная программа 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 для следующих значений:
- Стругацкие
- Льюис
- Экзюпери