An open API service indexing awesome lists of open source software.

https://github.com/rtuty/library-grpc-server

gRPC server for library
https://github.com/rtuty/library-grpc-server

backend docker go grpc protocol-buffers

Last synced: 2 months ago
JSON representation

gRPC server for library

Awesome Lists containing this project

README

          

#### Запуск проекта:
```
make docker
```

#### Описание архитектуры сервиса

**internal** - содержит всю внутреннюю логику приложения.
Сервис библиотека создается согласно принципу двухуровневой архитектуры (уровень базы данных и транспортный).

**internal/app** - инстанс сервиса, строится логика и формируется run-метод, вызываемый из cmd/main.

#### Уровень базы данных
**internal/db** - взаимодествия с базой данных MySQL

**internal/db/(authors||books)** - манипуляции с сущностями книга и автор в плоскости БД.

**internal/db/transaction** - чтобы соблюдать принципы атомарности, согласованности и изолированности при работе с MySql, сервис обработывает sql-запросы в рамках транзакции.
Методы query, query row и execute вынесены в данный файл, чтобы следовать принципу разработки DRY, при написании логики в файле манипуляции сущностями. Также, считаю важным уточнить,
что в работе с исполняемыми запросами используются параметризованные аргументы, чтобы недопустить возможность sql-инъекции со стороны клиента.

#### Транспортный уровень