A production-ready Archetect archetype for generating modular, enterprise-grade Python REST services with modern tooling and best practices.
This archetype creates a complete, production-ready REST service with:
- ποΈ Modular Architecture: Separate packages for API, core logic, persistence, server, and client
- β‘ Modern Python Tooling: UV for dependency management, modern pyproject.toml configuration
- π³ Docker-Ready: Complete containerization with Docker Compose orchestration
- π Monitoring Stack: Integrated Prometheus metrics and Grafana dashboards
- π§ͺ Comprehensive Testing: Unit, integration, and REST connectivity tests
- π CI/CD Pipeline: GitHub Actions workflows for testing, building, and deployment
- π Health Checks: Built-in health endpoints and service monitoring
- π§ Development Tools: Scripts for setup, testing, and database management
my-awesome-service/
βββ my-awesome-service-api/ # API contracts and models
βββ my-awesome-service-core/ # Business logic
βββ my-awesome-service-persistence/ # Database layer with migrations
βββ my-awesome-service-server/ # FastAPI server implementation
βββ my-awesome-service-client/ # HTTP client library
βββ my-awesome-service-integration-tests/ # End-to-end tests
βββ monitoring/ # Grafana & Prometheus config
βββ scripts/ # Development utilities
βββ docker-compose.yml # Complete stack orchestration
βββ Dockerfile # Multi-stage production build
- Archetect CLI tool
- Git access to this repository
archetect render https://github.com/p6m-archetypes/python-rest-service-uv-basic.archetype.git#v1cd my-new-service
# 1. Sync all packages
find . -name "pyproject.toml" -exec sh -c 'cd "$(dirname "$1")" && echo "Syncing $(pwd)" && uv sync' _ {} \;
# 2. Start the complete stack
docker-compose up -d
# 3. Run integration tests
./scripts/run-tests.sh
# 4. Access your service
# - REST API: http://localhost:8000
# - Health: http://localhost:8000/health
# - OpenAPI Docs: http://localhost:8000/docs
# - Metrics: http://localhost:8000/metrics
# - Grafana: http://localhost:3000 (admin/admin)
# - Prometheus: http://localhost:9090- Hexagonal Architecture: Clean separation of concerns
- Modular Design: Independent, reusable packages
- Dependency Injection: Proper service layer organization
- Error Handling: Structured exception management
- UV Package Manager: Fast, reliable dependency management
- Python 3.11+: Modern language features and performance
- FastAPI: High-performance, modern async web framework
- Pydantic: Type-safe data validation and serialization
- SQLAlchemy 2.0: Modern ORM with async support
- Structured Logging: JSON-structured logs with contextual information
- Prometheus Metrics: Business and technical metrics
- Grafana Dashboards: Pre-configured service monitoring
- Health Checks: Comprehensive service health reporting
- OpenTelemetry: Distributed tracing and observability
- pytest Framework: Modern testing with async support
- TestContainers: Isolated integration testing
- HTTP Testing: Comprehensive REST API connectivity validation
- Coverage Reporting: Code coverage with HTML reports
- CI Integration: Automated testing in GitHub Actions
- Multi-stage Dockerfile: Optimized container builds
- Docker Compose: Complete development environment
- Database Migrations: Alembic-powered schema management
- Security: JWT authentication and rate limiting middleware
- Performance: Connection pooling and async operations
- OpenAPI Documentation: Auto-generated API documentation
This archetype is ideal for:
-
Public-Facing APIs: External APIs requiring wide compatibility
- OpenAPI/Swagger documentation for easy integration
- HTTP/JSON standard supported by all programming languages
- Third-party integrations and partner APIs
- Can be consumed directly by frontend applications
-
API Gateways & Aggregation: Services that federate internal microservices
- Aggregate multiple gRPC or REST services behind a unified REST API
- Backend-for-Frontend (BFF) pattern for web and mobile apps
- Transform internal service responses into client-optimized formats
- Handle authentication, rate limiting, and CORS for frontend clients
-
CRUD Applications: Standard Create, Read, Update, Delete operations
- Resource-based REST endpoints with HTTP verbs
- Simple data models with straightforward persistence
- Admin interfaces and internal tools
-
Python-First Architectures: When Python's ecosystem is the primary choice
- FastAPI for high-performance async HTTP
- Integration with Python data science and ML libraries
- Modern Python 3.11+ async/await support
Architectural Note: REST services offer flexibility:
- Consume gRPC services internally, expose REST externally (gateway pattern)
- Stand-alone services with direct database access (monolithic microservice)
- Pure HTTP architecture where all services communicate via REST
This archetype includes a comprehensive validation suite that ensures generated services meet production standards:
- β 0 manual fixes required - Services work immediately after generation
- β <2 minutes from generation to running service - Fast development cycle
- β 100% integration test pass rate - Reliable, tested code
- β Template validation - No hardcoded values remain
Run the validation suite:
./validate_archetype.shThis archetype has been extensively updated and tested:
- Package Configuration Modernization - Updated all pyproject.toml files to modern standards
- FastAPI Version Consistency - Pinned FastAPI and dependencies to stable versions
- Python Package Structure - Fixed namespace organization and import paths
- Docker Configuration - Updated container setup for reliable operation
- Monitoring Infrastructure - Added complete Prometheus/Grafana stack
- Integration Testing - Fixed pytest hooks and REST connectivity tests
- CI/CD Pipelines - Updated GitHub Actions with proper template variables
- Database Configuration - Replaced hardcoded database references
- Build System - Cleaned up package references and dependencies
- Template Validation - Created comprehensive validation tools
- Test Structure Alignment - Aligned test patterns with gRPC archetype for consistency
- Port Configuration - Standardized on port 8000 for REST services
- Comprehensive test suite validates all success criteria
- Reference implementation comparison ensures correctness
- Integration testing covers all service components
- Monitoring validation confirms observability stack works
- CI/CD testing verifies automation pipelines
Generated services include comprehensive documentation:
- README.md - Complete setup and usage instructions
- OpenAPI Documentation - Interactive API documentation at
/docs - Development Guide - Local development workflow
- Deployment Guide - Production deployment instructions
- Monitoring Guide - Observability and alerting setup
- CRUD Operations: Complete Create, Read, Update, Delete functionality
- Pagination: Built-in pagination support for list endpoints
- Filtering: Query parameter filtering capabilities
- Validation: Automatic request/response validation with Pydantic
- Error Handling: Consistent error responses with proper HTTP status codes
- OpenAPI 3.0: Auto-generated OpenAPI/Swagger specifications
- Interactive Docs: Swagger UI at
/docsand ReDoc at/redoc - Schema Validation: Runtime request/response validation
- Type Safety: Full type hints throughout the codebase
This archetype is actively maintained and improved. For issues or enhancements:
- Check existing issues in the repository
- Create detailed bug reports or feature requests
- Follow the contribution guidelines
- Test changes with the validation suite
This archetype is released under the MIT License. Generated services inherit this license but can be changed as needed for your organization.
Ready to build production-grade REST services? Generate your first service with the command above and have a fully functional microservice running in under 2 minutes! π