Skip to content

Releases: LibreCourseUY/PolyAPI

Release list

PolyAPI 1.0.0

Choose a tag to compare

@emiliano-go emiliano-go released this 04 Mar 15:13
38574ee

PolyAPI v1.0.0 Release

Introducing PolyAPI

We're thrilled to announce the release of PolyAPI v1.0.0 - a production-ready polyglot microservices gateway built with Python FastAPI.

What is PolyAPI?

PolyAPI is a polyglot microservices architecture that enables you to build APIs using multiple programming languages. Each functionality lives as an independent module that communicates through a standardized JSON contract.

Key Features

Language Agnostic

Write modules in any language that supports HTTP + JSON. The gateway handles the orchestration, so your modules can be written in Go, Python, Rust, Node.js, or any other language.

Type Safety

Pydantic models provide request/response validation at the gateway level. Each module can define its own payload schema for robust input validation.

Standardized Contract

All modules communicate through a consistent JSON envelope format:

  • Request: request_id, module, version, payload
  • Response: request_id, module, version, status, data, error

Easy Extensibility

Add new modules by simply updating the gateway configuration. No code changes required to the gateway itself.

Automatic Documentation

OpenAPI/Swagger documentation is auto-generated for all endpoints.

Architecture

Client → Gateway (FastAPI) → Modules
              │
              ├── Validation
              ├── Routing
              └── Schema Processing

Getting Started

Quick Example

# Sort numbers
curl -X POST http://localhost:8000/sort \
  -H "Content-Type: application/json" \
  -d '{"payload": {"items": [5, 2, 8, 1], "order": "desc"}}'

# Response:
# {
#   "request_id": "...",
#   "module": "sort",
#   "version": "1.0.0",
#   "status": "success",
#   "data": {
#     "sorted": [8, 5, 2, 1],
#     "item_type": "number",
#     "count": 4
#   },
#   "error": null
# }

Installation

# Clone the repository
git clone https://github.com/LibreCourseUY/PolyAPI.git
cd PolyAPI

# Start with Docker Compose
docker-compose up --build

Adding a New Module

  1. Create your module in modules/your_module/
  2. Define the payload schema in gateway/schemas/modules/
  3. Register in gateway/config.py

See our documentation for detailed guides.

What's Included

  • Gateway: FastAPI-based orchestration layer
  • Sort Module: Example Go module for sorting strings and numbers
  • JSON Contract: Language-agnostic communication protocol
  • Error Handling: Standardized error codes and responses
  • Comprehensive Documentation: Complete guides for users and contributors

Documentation

Visit our documentation at: https://librecourseuy.github.io/PolyAPI/

What's Next?

This is just the beginning. We plan to:

  • Add more example modules
  • Implement authentication/authorization
  • Add rate limiting
  • Support for WebSocket modules
  • Kubernetes deployment guides

Contributing

We welcome contributions! Please read our Contributing Guide and sign the CLA.

License

MIT License - see CLA.md for details.


Thank you to all contributors who made this release possible!

Built with FastAPI, Go, and Python.