README.md

Koteyye Ecosystem API

Этот репозиторий служит API Schema Registry для экосистемы Koteyye. Он реализует подход API First: сначала пишутся контракты (Protobuf, OpenAPI), затем генерируется код.

Структура проекта

  • api/ — Исходный код спецификаций (Source of Truth).
    • api/proto/ — gRPC сервисы и сообщения (Protobuf).
    • api/openapi/ — REST API спецификации (OpenAPI/Swagger).
  • gen/ — Автоматически сгенерированный код. Не редактировать!
    • gen/go/ — Go (gRPC стабы, HTTP серверы, модели).
  • Taskfile.yml — Скрипты автоматизации (аналог make).

Как создавать спецификацию

1. Добавление gRPC сервиса (Protobuf)

  1. Создайте директорию: api/proto/<service_name>/v1/.
  2. Создайте файл .proto (например, service.proto).
  3. В начале файла укажите корректный go_package:

    syntax = "proto3";
    package ecosystem.<service_name>.v1;
    option go_package = "gitflic.ru/project/koteyye/koteyye_eco_system_api/gen/go/<service_name>/v1/grpc;<pkg_alias>";
    
  4. Запустите генерацию: task gen:proto.

2. Добавление REST сервиса (OpenAPI)

  1. Создайте директорию: api/openapi/<service_name>/v1/.
  2. Составьте спецификацию service.yaml (OpenAPI 3.0+).
  3. Убедитесь, что настроена генерация в Taskfile.yml (команда gen:openapi:go).
  4. Запустите генерацию: task gen:openapi:go.

Генерация кода

Для генерации всего кода используйте Task:

task gen

Доступные подкоманды:

  • task gen:proto — только Protobuf/gRPC.
  • task gen:openapi:go — только OpenAPI (Go).
  • task gen:openapi:ts — только OpenAPI (TypeScript).

Требования

  • Go 1.25.5+
  • Task
  • Buf (для Protobuf)
  • Node.js & NPM (для TypeScript генерации)
Описание
Контракты для экосистемы
Конвейеры
0 успешных
0 с ошибкой
Разработчики