|
| 1 | +!!! pied-piper ":bulb: TL;DR - Open Source, CLI, Standard IDE, Standard Runtime" |
| 2 | + |
| 3 | + Weclcome to API Logic Server. It's an open source project designed to create microservices quickly and easily. |
| 4 | + |
| 5 | + This page provides a project summary. For more detailed information, select a page from the list at left. |
| 6 | + |
| 7 | + **Creation** |
| 8 | + |
| 9 | + * Create projects using the CLI, from a database, a SQLAlchemy model, or an AI description. |
| 10 | + |
| 11 | + **Development** |
| 12 | + |
| 13 | + * **Standards-based customization** - debug in a standard IDE (VSCode, PyCharm), using standard packages (Flask, SQLAlchemy) |
| 14 | + |
| 15 | + **Deployment** |
| 16 | + |
| 17 | + * A modern 3-tiered architecture, accessed by **APIs** |
| 18 | + * Logic is **automatically reused**, factored out of web apps and custom services |
| 19 | + * **Containerized** for scalable cloud deployment - the project includes a dockerfile to containerize it to DockerHub. |
| 20 | + |
| 21 | + |
| 22 | +## Runtimes and CLI |
| 23 | + |
| 24 | +API Logic Server is a Python Application, consisting of: |
| 25 | + |
| 26 | +1. __Runtimes__ for ApiLogicProject execution (see below) |
| 27 | +2. __CLI__ (Command Language Interface - provides `ApiLogicServer create `…`) |
| 28 | + |
| 29 | +It executes either as a locally install (venv), or a Docker image (which includes Python). In either case, the contents are the same: |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +## Created Projects |
| 36 | + |
| 37 | +Created projects are designed for Customization. |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +## Key Runtime Components |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +The following |
| 46 | + |
| 47 | +| Component | Provides | |
| 48 | +|:---------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------| |
| 49 | +| [Flask](https://flask.palletsprojects.com/en/1.1.x){:target="_blank" rel="noopener"} | enables you to write custom web apps, and custom api end points | |
| 50 | +| [SQLAlchemy](https://docs.sqlalchemy.org/en/14/core/engines.html){:target="_blank" rel="noopener"} | Python-friendly ORM (analogous to Hiberate, JPA) | |
| 51 | +| [Logic Bank](Logic-Operation.md#logic-architecture){:target="_blank" rel="noopener"} | Listens for SQLAlchemy updates, provides Multi-Table Derivations and Constraint Rules<br>Python Events (e.g., send mail, message)<br>Customizable with Python<br> | |
| 52 | +| [SAFRS](https://github.com/thomaxxl/safrs/wiki){:target="_blank" rel="noopener"} | JSON:API and swagger, based on SQLAlchemy | |
| 53 | +| [SAFRS-RA](https://github.com/thomaxxl/safrs-react-admin){:target="_blank" rel="noopener"} | *Admin App*, using SAFRS | |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | + |
| 58 | +## Execution: 3-tiered architecture |
| 59 | + |
| 60 | +The API Logic Server executes as an application server, accessed by an API, in a standard 3-tiered architecture. |
| 61 | + |
| 62 | +Observe that logic plugs into SQLAlchemy. **Logic is thus automatically shared** (factored out) of custom services, and web or browser-based apps. |
| 63 | + |
| 64 | +In most cases, the API Logic Server executes in a **container**, so scales horizontally like any other Flask-based server. |
| 65 | + |
| 66 | + |
0 commit comments