Skip to content

Downloads Latest Version Supported Python versions

API Logic Server Intro

 

Welcome to API Logic Server

This is an old version of the docs - please see the current version

API Logic Server creates customizable database web app projects:

  • Creation is Instant: create executable projects from your database with a single command. Projects are Highly Functional, providing:

    • API: an endpoint for each table, with filtering, sorting, pagination and related data access

    • Admin UI: multi-page / multi-table apps, with page navigations, automatic joins and declarative hide/show

  • Projects are Customizable, using your IDE: such as VSCode, PyCharm, etc, for familiar edit/debug services

  • Business Logic Automation: using unique spreadsheet-like rules, extensible with Python 🏆

 

Why It Matters: Faster, Simpler, Modern Architecture

API Logic Server can dramatically improve web app development:

  • Automation makes it faster: what used to require weeks or months is now immediate. Unblock UI Dev, and engage business users - early - instead of investing in a misunderstanding.

  • Automation makes it simpler: this reduces the risk of architectural errors, e.g., APIs without pagination.

  • Automation guarantees a modern software architecture: container-ready, API-based, with shared logic between UIs and APIs (no more logic in UI controllers), in a predictable structure for maintenance.

Quick Evaluation - no install

You can avoid install hassles by exploring the Sample Project in Codespaces. This will enable you to use VSCode - in your Browser, zero install - to:

  • Create a project using the supplied sample database
  • Examine the created project in VSCode (in your Browser)
  • Use the Tutorial to run, customize and debug it

We think you'll find Codespaces pretty amazing - check it out!

 

Background

A brief look at why we built it, and our approach.

Motivation - not instant, propietary IDE, no logic automation

We looked at approaches for building database systems:

  • Frameworks: Frameworks like Flask or Django enable you to build a single endpoint or Hello World page, but a multi-endpoint API and multi-page application would take weeks or more.

  • Low Code Tools: these are great for building great UIs, but

    • Want a multi-page app, instantly -- no layout required each screen
    • Want to preserve dev tools - VSCode, PyCharm, git, etc
    • Need an answer for backend business logic (it's nearly half the effort)

Our Approach: Instant, Customizable, Logic Automation

API Logic Server is an open source Python project, consisting of:

  • a set of runtimes (SAFRS API, Flask, SQLAlchemy ORM, business logic engine) for project execution, plus

  • a CLI (Command Language Interface) to create executable projects, which can be customized in an IDE such as VSCode or PyCharm

It runs as a standard pip install, or under Docker. After installation, you use the CLI create a project like this:

ApiLogicServer create --project_name=ApiLogicProject db_url=
 

💡 Key Takeaway

API Logic Server reads your schema, and creates an executable, customizable project providing the features listed below. Check it out here.

 

Feature Summary

Feature Providing Why it Matters
Instant 1. Admin App Instant multi-page, multi-table app (running here on PythonAnywhere) Engage Business Users
Back-office Admin
2. JSON:API and Swagger Endpoint for each table, with...
Filtering, pagination, related data
Custom UI Dev
App Integration
3. Data Model Class Creation Classes for Python-friendly ORM Custom Data Access
Used by API
Customizable 4. Customizable Project Custom Endpoints, Logic
Use Python and your IDE
Customize and run
Re-creation not required
Unique Logic 5. Spreadsheet-like Business Rules   🏆 40X more concise - compare legacy code Unique backend automation
... nearly half the system
Extensible with Python Familiar Event Model Eg., Send messages, email
Testing 6. Behave Test Framework Test Suite Automation
Behave Logic Report
Drive Automation with Agile
Optimize Automation to get it fast
Agile Collaboration to get it right

 

Instant -- Single Command

Use the CLI to create the sample API and Admin App project, with a single command.

 

Create With Docker

Execute the following commands (Windows, use Windows Terminal or Powershell):

Run API Logic Server in Docker
# Start the API Logic Server docker container
docker run -it --name api_logic_server --rm -p 5656:5656 -p 5002:5002 -v ${PWD}:/localhost apilogicserver/api_logic_server

ApiLogicServer create-and-run --project_name=/localhost/ApiLogicProject --db_url=
 

Or, Create With Local Install

Presuming Python 3.7+ is installed, it's typically:

Run API Logic Server from a local pip install
python -m venv venv        # may require python3 -m venv venv
source venv/bin/activate   # windows venv\Scripts\activate
venv\Scripts\activate      # mac/linux: source venv/bin/activate
python -m pip install ApiLogicServer

ApiLogicServer create --project_name=ApiLogicProject --db_url=  # or, create-and-run
python ApiLogicProject/api_logic_server_run.py                  # run the server
 

Execute

Your system is running - explore the data and api at localhost:5656. Using the defaults provided above, you have started the Tutorial, the recommended quick start for API Logic Server.

 

Customize in IDE

VSCode and PyCharm users can customize and run/debug within their IDE with these steps. Created projects include Launch and Docker configurations.

Rebuild services are provided to accomodate changes to database structure or ORM classes.

 

Overview Video

Project creation is based on database schema introspection as shown below: identify a database, and the ApiLogicServer create commands creates an executable, customomizable project.

Click for a video tutorial, showing complete project creation, execution, customization and debugging.

Using VS Code

 

Getting Started

Local Install

API Logic Server is designed to make it easy to get started:

  • Install and run Tutorial - install, and explore the tutorial. You'll create a complete project using the pre-installed sample database, explore its features, and support for customization and debugging.

  • Installed Sample Databases - Here are some installed sample databases

  • Dockerized Test Databases - Then, you might like to try out some of our dockerized test databases.

  • Your Database - Finally, try your own database.

 

Use Cases

There are a variety of ways for getting value from API Logic Server:

  • Create and Customize database web apps - the core target of the project

  • Admin App for your database - the Admin App is a create way to navigate through your database, particularly to explore data relationships

  • Data Repair - using the Admin App with logic to ensure integrity, repair data for which you may not have had time to create custom apps

  • Project Creation - even if you do not intend to use the API, Admin App or logic, you can use API Logic Server to create project you then edit by hand. Created projects will include the SQLAlchemy Data Models, and project structure

  • Learning - explore the Learning Center to learn about key concepts of Flask and SQLAlchemy

 

Project Information

Making Contributions

This is an open source project. We are open to suggestions for enhancements. Some of our ideas include:

Component Provides Consider Adding
1. JSON:API and Swagger API Execution Security authenticate, role-based access control active development
Multi-DB support multiple databases active development/ API
Serverless / Kubernetes - extend containerization
2. Transactional Logic Rule Enforcement New rule types
3. SAFRS React Admin Admin UI Enhancements Maps, trees, ...
4. This project API Logic Project Creation Support for features described above

To get started, please see the Architecture..

Preview Version

You can try the pre-release at:

python3 -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple ApiLogicServer==7.0.43

Or use:

docker run -it --name api_logic_server --rm -p 5656:5656 -p 5002:5002 -v ~/dev/servers:/localhost apilogicserver/api_logic_server_x

Or, you can use the beta version on codespaces.

Notes - the following are not working:

  • Swagger
  • Passwords validation

 

Status

We have tested several databases - see status here.

We are tracking issues in git.

 

Acknowledgements

Many thanks to:

  • Thomas Pollet, for SAFRS, SAFRS-react-admin, and invaluable design partnership
  • Nitheish Munusamy, for contributions to Safrs React Admin
  • Marelab, for react-admin
  • Armin Ronacher, for Flask
  • Mike Bayer, for SQLAlchemy
  • Alex Grönholm, for Sqlacodegen
  • Meera Datey, for React Admin prototyping
  • Denny McKinney, for Tutorial review
  • Achim Götz, for design collaboration and testing
  • Max Tardiveau, for testing and help with Docker
  • Michael Holleran, for design collaboration and testing
  • Nishanth Shyamsundar, for review and testing
  • Thomas Peters, for review and testing
  • Daniel Gaspar, for Flask AppBuilder
  • Gloria Huber and Denny McKinney, for doc review

 

Articles

There are a few articles that provide some orientation to API Logic Server: