Skip to content

This is s1mple order service, which works through gRPC-gateway. It supports as http as gRPC queries. Also it containts OpenAPI docs.

Notifications You must be signed in to change notification settings

C1scoR/OrderService

Repository files navigation

gRPC Order Service

Простой gRPC-сервис для управления заказами, написанный на Go.

Начало работы

Эти инструкции помогут вам запустить и настроить проект на вашем локальном компьютере для разработки и тестирования.

Требования

Для работы проекта вам понадобятся:

Установка

  1. Клонируйте репозиторий:

    git clone <your-repository-url>
    cd YandexSpecializationPractice
  2. Установите зависимости: Выполните команду в корне проекта, чтобы загрузить все необходимые модули.

    go mod tidy

Конфигурация

Приложение настраивается с помощью переменных окружения. Для удобства вы можете создать файл .env в корне проекта.

  1. Создайте файл конфигурации: Скопируйте пример конфигурации в новый файл с именем .env.

    copy .env.example .env
  2. Отредактируйте .env: Откройте файл .env и при необходимости измените значения.

Переменные окружения

Переменная Описание Значение по умолчанию Пример
ENV Режим работы приложения. Влияет на уровень логирования (development для более подробных логов). development production
PORT Порт, на котором будет запущен gRPC-сервер. 50051 8080
HTTP_TIMEOUT Таймаут для операций. Задается в формате, понятном для time.ParseDuration. 30s 1m, 500ms

Запуск

Для запуска gRPC-сервера выполните следующую команду из корневой директории проекта:

go run cmd/main/main.go

Вы должны увидеть сообщение о том, что сервер успешно запущен:

gRPC server is running on localhost:50051

Пример использования (grpcurl)

После запуска сервера вы можете отправлять ему запросы с помощью grpcurl.

Получить список всех заказов

grpcurl -plaintext localhost:50051 api.OrderService/ListOrders

Создать новый заказ

grpcurl -plaintext -d '''{"item": "new-shiny-item", "quantity": 10}''' localhost:50051 api.OrderService/CreateOrder

В ответ вы получите id созданного заказа.

Получить заказ по ID

Замените your-order-id на реальный ID.

grpcurl -plaintext -d '''{"id": "your-order-id"}''' localhost:50051 api.OrderService/GetOrder

Обновить заказ по ID

Замените your-order-id на реальный ID.

grpcurl -plaintext -d '''{"id": "your-order-id", "item": "updated-item", "quantity": 20}''' localhost:50051 api.OrderService/UpdateOrder

Удалить заказ по ID

Замените your-order-id на реальный ID.

grpcurl -plaintext -d '''{"id": "your-order-id"}''' localhost:50051 api.OrderService/DeleteOrder

About

This is s1mple order service, which works through gRPC-gateway. It supports as http as gRPC queries. Also it containts OpenAPI docs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published