Essential Open API is a Python Flask API that provides dynamic access to classes, instances, and relationships from the Essential meta-model, compatible with Essential Utility API v3. It also enables repository publishing and real-time progress monitoring within Essential Open Source.
This project ships with a ready-to-use Docker setup. Follow the steps below to build and run the containerized API.
- Docker
- Docker Compose (v2 or newer)
docker compose buildThe command uses the Dockerfile in the repository root to install dependencies and configure the Flask application.
docker compose upThis starts the Flask API on port 5100 (mapped from the container). The container mounts the project directory, so local code changes are reflected immediately.
-
Stop services
docker compose down
-
Rebuild from scratch
docker compose build --no-cache
Interactive API documentation is generated automatically using Open API (Swagger 2.0) through the flasgger package.
Once the API is running, you can access the Swagger UI directly in your browser:
Implementation Details:
- Every endpoint in the internal
app.routeorapi_bppaths has attached YAML docstrings representing tags, descriptions, required query strings, path variables, and request/response models. - Flasgger generates an interactive HTML interface parsing these properties, mapping dynamic routes directly to the UI for testing endpoints and visualizing schemas.
The demo/ directory contains a static HTML page that interacts with the API and demonstrates key endpoints:
- Configure the API base URL in the header field.
- Trigger repository publishing and monitor real-time progress with a progress bar.
- Inspect the
/api/classes/Currency/instancesendpoint response.
To view the demo, open demo/index.html in a browser (or serve the folder via a simple static server). Ensure the API is running and accessible from the configured base URL.
