Categorygithub.com/NikitaTitkov/gRPC-Server-CRUD
repository
0.0.0-20241117093829-644af6b67dd3
Repository: https://github.com/nikitatitkov/grpc-server-crud.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# 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"
}