Skip to main content

Create JSON:API and Web App from database, with LogicBank -- 40X more concise, Python for extensibility.

Project description


title:

Downloads Latest Version Supported Python versions

API Logic Server Intro

 

Find the documentation 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
Unblock custom App Dev
Application 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   :trophy: 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

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

  • a set of runtimes (SAFRS API, Flask, SQLAlchemy ORM, rule 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. Here, we 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 Powershell):

# 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:

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      # create, or create-and-run; accept defaults

 

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

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.

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

  • Your Database - finally, try your own database.

 

Project Information

Tutorials

There are a number of facilities that will quickly enable you to get familiar with API Logic Server:

  • Tutorial walks you through the steps of creating a server
  • Video shows the steps of creating a server

 

Making Contributions

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

Component Provides Consider Adding
1. safrs-react-admin Admin App Hide/Show, Cascade Add
2. JSON:API and Swagger API Execution Security, Serverless, Kubernetes
3. Transactional Logic Rule Enforcement New rule types
4. This project API Logic Project Creation Support for features described above

To get started, please see the Architecture.

 

Status

We have tested several databases - see status here.

We are tracking issues in git.

We have introduced several renames to clarify operation. These do not affect existing projects. However, we've not updated all the docs to reflect these changes:

  • logic/declare_logic.py replaces logic_bank.py
  • api/customize_api.py replaces expose_services.py
  • database/customize_models.py replaces models_ext.py

 

Acknowledgements

Many thanks to

  • Thomas Pollet, for SAFRS, SAFRS-react-admin, and invaluable design partnership
  • 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:

[^1]: See the FAQ for Low Code

Change Log

08/15/2022 - 05.03.33: Remove Postgres driver from local install, Fix ApiLogicServer run fails (Issue 45)

07/24/2022 - 05.03.26: api_logic_server_run refactor, codespaces support

07/15/2022 - 05.03.17: Add swagger_host for create & run, Docker env

07/10/2022 - 05.03.11: Product links to new gh-pages doc site

06/27/2022 - 05.03.06: nw-, with perform_customizations docker

06/22/2022 - 05.03.00: Docker support to load/run project (env or sh), create ApiLogicProject image

06/16/2022 - 05.02.23: Support nw- (sample, no customization) for evaluation

06/12/2022 - 05.02.22: No pyodbc by default, model customizations simplified, better logging

05/30/2022 - 05.02.16: Python 3.10, Dockerfile include, start info

05/25/2022 - 05.02.12: Verified for Python 3.10, improved support for configuring venv

05/04/2022 - 05.02.03: alembic for database migrations, admin-merge.yaml

04/24/2022 - 05.01.01: copy_children, with support for nesting (children and grandchildren, etc.)

03/27/2022 - 05.00.06: Introducing Behave test framework, LogicBank bugfix

02/18/2022 - 04.02.03: SqlServer fixes, rebuild creates '-created' versions for data model repair

01/18/2022 - 04.01.01: fix startup failure on created app (windows pip-install version only)

01/14/2022 - 04.01.00: add info_disp/show, attribute info, performance, date fix

12/26/2021 - 04.00.05: Introducing the Admin app, with Readme Tutorial

11/13/2021 - 03.50.00: rebuild-from-database/model, improved relationship support

11/04/2021 - 03.40.01: Per macOS Monterey, default ports to 5001, 5002

10/18/2021 - 03.20.11: Readme Tutorial for IDE users

10/16/2021 - 03.20.07: dev-network no longer required (see Releases)

10/03/2021 - 03.10.17: default db_url

10/02/2021 - 03.01.16: bugfix improper run arg for VSCode launch configuration

09/29/2021 - 03.01.15: run (now just runs without create), added create-and-run

09/25/2021 - 03.01.10: enable run command for Docker execution, pyodbc, fab create-by-copy

09/15/2021 - 03.00.09: auto-create .devcontainer for vscode, configure network, python & debug

09/10/2021 - 03.00.02: rename logic_bank to declare_logic, improved logging

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ApiLogicServer-5.3.34.tar.gz (7.0 MB view hashes)

Uploaded Source

Built Distribution

ApiLogicServer-5.3.34-py3-none-any.whl (7.3 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page