All Projects → valhuber → ApiLogicServer

valhuber / ApiLogicServer

Licence: BSD-3-Clause license
Instantly create customizable database web app projects, providing API, Admin UI, and unique declarative business logic.

Programming Languages

TSQL
950 projects
python
139335 projects - #7 most used programming language
Dockerfile
14818 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to ApiLogicServer

QuickLearn
A collection of resources categorised by tech domains, languages, expertise and much more. QuickLearn gives you a quick access to all the resources that you could need at a single place, within a click!
Stars: ✭ 89 (+7.23%)
Mutual labels:  json-api, web-application
jaq
jaq is a CLI tool for scripting and chaining JSON API requests.
Stars: ✭ 43 (-48.19%)
Mutual labels:  json-api
neat-form
Build form on Android using JSON schema; also includes view validation and skip logic.
Stars: ✭ 56 (-32.53%)
Mutual labels:  rules-engine
homebrewhub
A showcase/archive of homebrews, patches, hackroms for old consoles. Provides community submission, tagging and rating features.
Stars: ✭ 36 (-56.63%)
Mutual labels:  json-api
SensorsAndAi
SensorAndAi is an android application which will give you the complete information about all the sensors and some basic information about artificial intelligence.This application will tell you about the use and implementation of the sensor and artificial intelligence.This app will show you how sensor and artificial intelligence is used in any an…
Stars: ✭ 29 (-65.06%)
Mutual labels:  web-application
cas-bootadmin-overlay
CAS Spring Boot Admin Server Overlay Template
Stars: ✭ 20 (-75.9%)
Mutual labels:  web-application
JSON-API-Client
Abstract client-side php implementation of the json api specification (jsonapi.org)
Stars: ✭ 17 (-79.52%)
Mutual labels:  json-api
saule
JSON API library for ASP.Net Web API 2.
Stars: ✭ 74 (-10.84%)
Mutual labels:  json-api
Vidhub
Video sharing website (YouTube clone) with PHP
Stars: ✭ 34 (-59.04%)
Mutual labels:  web-application
format-to-json
An algorithm that can format a string to json-like template. 字符串JSON格式化的算法。
Stars: ✭ 30 (-63.86%)
Mutual labels:  json-api
api
_api is an autogenerated CRUD API built on LowDB and ExpressJS.
Stars: ✭ 73 (-12.05%)
Mutual labels:  json-api
blog-nojs-fingerprint-demo
A demo for the no-JavaScript fingerprinting article
Stars: ✭ 443 (+433.73%)
Mutual labels:  web-application
liteflow
Small but powerful rules engine,轻量强大优雅的规则引擎
Stars: ✭ 1,119 (+1248.19%)
Mutual labels:  rules-engine
yin-middleware
Integrate Woohoo Labs. Yin into your application!
Stars: ✭ 14 (-83.13%)
Mutual labels:  json-api
crud-json-api
Build advanced JSON API Servers with almost no code.
Stars: ✭ 47 (-43.37%)
Mutual labels:  json-api
pali
Pāḷi Tipiṭaka and Pāḷi Dictionaries
Stars: ✭ 20 (-75.9%)
Mutual labels:  web-application
stakes.social
🥨 Stakes.social
Stars: ✭ 67 (-19.28%)
Mutual labels:  web-application
writefreely
A clean, Markdown-based publishing platform made for writers. Write together and build a community.
Stars: ✭ 2,866 (+3353.01%)
Mutual labels:  web-application
atrodam
AtroDAM is an open-source digital asset management system (DAM) of a new generation.
Stars: ✭ 45 (-45.78%)
Mutual labels:  web-application
card matching game by ercan
A card-matching game made with Flutter.
Stars: ✭ 16 (-80.72%)
Mutual labels:  web-application
title

Downloads Latest Version Supported Python versions

API Logic Server Intro

 

Find the documentation here.

 

Welcome to API Logic Server

API Logic Server creates customizable database web app projects:

  • Creation is Instant: create projects with a single command

  • Projects are Highly Functional:

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

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

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

  • Business Logic Automation: using unique rules, extensible with Python

 

Background

A brief look at why we built it, and what it is.

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 -- no screen painting
    • Want to preserve dev tools - VSCode, PyCharm, git, etc
    • Need an answer for backend 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, 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. After installation, you use the CLI create a project like this:

ApiLogicServer create --project_name=ApiLogicProject db_url=

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

 

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

 

Execute

Your server 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

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:

  • see the created project
  • use the Tutorial to run, customize and debug it

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

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.

  • 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. JSON:API and Swagger API Execution Security, Serverless, Kubernetes
2. Transactional Logic Rule Enforcement New rule types
3. 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:

Change Log

10/02/2022 - 06.02.00: Option infer_primary_key, Oct1 SRA (issue 49), cleanup db/api setup, restore postgres dvr

09/15/2022 - 06.01.00: Multi-app Projects

08/28/2022 - 06.00.00: Admin App show_when, cascade add. Simplify Codespaces swagger url & use default config

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

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].