Спроектировать базу данных, в которой содержится авторы книг и сами книги. Необходимо написать сервис, который будет по автору искать книги, а по книге искать её авторов.
- Сервис должен принимать запрос по GRPC
- Должна быть использована база данных MySQL
- Код сервиса должен быть хорошо откомментирован
- Код должен быть покрыт unit тестами
- В сервисе должен лежать Dockerfile, для запуска базы данных с тестовыми данными
- Должна быть написана документация, как запустить сервис
- Плюсом будет, если в документации будут указания на команды, для запуска сервиса и его окружения, через Makefile
На компьютере должны быть установлены:
- Docker (с возможностью использования docker compose)
- go
- grpcui (устанавливается консольной командой
go install github.com/fullstorydev/grpcui/cmd/grpcui@latest
)
Запуск сервиса и сборка клиента:
make run-service
Остановка сервиса и удаление клиента:
make stop-service
Запуск GUI-консоли для тестирования gRPC:
make grpc-gui
Форматирование, проверка линтерами и прогон тестов:
make before-push
Компиляция protobuf:
make protoc-books
Сервис стартует с небольшим набором тестовых данных, что дает возможность сразу запускать запросы. Для запуска запросов можно использовать клиент. Ниже приведены примеры команд для запуска из директории проекта:
./client/cli -author "J.K. Rowling"
./client/cli -book "Harry Potter and the Chamber of Secrets"