# README
gRPC-Client-Server-CRUD
Table of Contents
About
Приложение, которое использует gRPC для реализации операций CRUD (создание, чтение, обновление и удаление) между клиентом и сервером.
Getting Started
Иструкция для установки зависимостей, локального тестирования и запуска
Установка линтера
make install-golangci-lint
Установка зависимостей
Для начала необходимо скачать protoc.
protoc --version
Локальная установка зависимостей в папку /bin
make install-deps
Для получения зависимостей в go.mod:
make get-deps
Генерация Go-кода для gRPC API на основе proto-декларации в файле users.proto
make generate-users-api
Testing
Запуск линтера для проверки
make lint
Запуск сервера локально
go run cmd/server/main.go
Сборка и запуск сервера
go build -o bin/server cmd/server/main.go
./bin/server
Запуск клиента локально
go run cmd/client/main.go
Сборка и запуск клиента
go build -o bin/client cmd/client/main.go
./bin/client
Для тестирования можно использовать Postman
Примеры запросов:
- UsersV1/Create
{
"user": {
"Age": 41,
"Email": "[email protected]",
"ID": "1",
"Info": {
"City": "Helsinki",
"Street": "some street"
},
"Name": "Alexy Laiho"
}
}
- UsersV1/Get
{
"ID": "1"
}
- UsersV1/GetAll
{
"limit": "100",
"offset": "0"
}
- UsersV1/Update
{
"ID": "1",
"user": {
"Age": {
"value": 40
},
"Email": {
"value": "[email protected]"
},
"Info": {
"City": {},
"Street": {}
},
"Name": {
"value": "Alexy wild-child Laiho"
}
}
}
- UsersV1/Delete
{
"ID": "1"
}