https://github.com/rxyalxrd/grpc_service
Тестовый сервис с применением фреймворка GRPC
https://github.com/rxyalxrd/grpc_service
fastapi grpc poetry-python protobuf pydantic-v2 python3
Last synced: 12 months ago
JSON representation
Тестовый сервис с применением фреймворка GRPC
- Host: GitHub
- URL: https://github.com/rxyalxrd/grpc_service
- Owner: Rxyalxrd
- License: gpl-3.0
- Created: 2025-04-04T18:52:45.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-04T19:11:19.000Z (about 1 year ago)
- Last Synced: 2025-04-04T20:22:53.486Z (about 1 year ago)
- Topics: fastapi, grpc, poetry-python, protobuf, pydantic-v2, python3
- Language: Python
- Homepage:
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Демо проект FastAPI-gRPC
---
Этот проект демонстрирует интеграцию `FastAPI` с `gRPC` для обработки запросов, а также использование `Pydantic` для валидации настроек. Проект включает настройки сервера, обработку `gRPC`-запросов и взаимодействие с клиентом.
---
## Стек технологий
- **Python 3.10-3.12+**
- **FastAPI** — для создания `API`.
- **gRPC** — для реализации `RPC`.
- **Pydantic** — для валидации настроек с помощью `Pydantic Settings`.
---
## Установка
1. Клонируйте репозиторий:
```bash
git clone https://github.com/yourusername/grpc_test.git
cd grpc_test
```
2. Установите зависимости:
Используйте `poetry` для установки зависимостей:
```bash
poetry install
```
3. Заполните `.env` как указано в `.env.example`
---
## Запуск
### Запуск `gRPC` сервера
- Для запуска, выполните:
```bash
make grpc-server
```
### Запуск `FastAPI` приложения
- Чтобы запустить, выполните:
```bash
make run
```
`FastAPI` будет доступен по адресу: `http://127.0.0.1:8000`.
---
## Как это работает
1. `gRPC` сервер: Сервер `gRPC` прослушивает порт `50051` и предоставляет метод `healthz`, который возвращает статус сервера.
2. `FastAPI`: Приложение FastAPI использует gRPC клиент для запроса статуса с сервера `gRPC` через `HTTP`-метод `/healthz`.
3. `Pydantic Settings`: Используется для загрузки настроек из `.env` файла, таких как параметры для `FastAPI` и `gRPC`.
---