REST API auto-generator.
Project description
Project Description
RESTAPIGen is a tool that works with an existing SQL database and autogenerates back-end files based on the structure of the SQL. It creates Models that auto-detects the field type. Further, after creating the Models, it harnesses the combined power of flask-blueprint and flask-marshmallow to create APIs around the pre-generated Models. The final result is a fully-working RESTFul API which is ready to be customized. Statistically, 100% of the developers were able to create a kick-starter boilerplate API which saved several days of monotonous coding.
Features
- Makes Models and REST files for each table so its easier to modulate and customize as per the needs.
- Integrates flask-blueprints and auto registers the models.
- Accepts requests in the form of application/json and also responds in JSON.
- Auto-detects one-to-one, one-to-many and many-to-many relationships and creates an application level soft link, even if the SQL tables are not hard indexed.
- Responds with an entire set of Collection based on the detected relationship, performs a JOIN wherever required, automatically.
- Makes the following REST APIs for each table
GETLIST : Retrieve all records from a tablePOSTCOLLECTION : Insert a record into the tableGETGET : Retrieve a row or an entire Collection from a tablePATCHPUT : Update a row with newer data in a tableDELETEPURGE : Performs a delete operation of a row or a collection in a table
Usage Instructions
Requirements as a Developer
- This tool is created to facilitate development of an API for intermediate to advanced Flask Users.
- Beginners must learn how to create API using Flask by referring to their documentation.
- The idea of the tool was to eliminate the monotonous coding which could have been automated.
- Before beginning, you must also know how to semantically create your database and establish relationships.
- The tool heavily relies on a semantic approach of how the database was created and columns were named. Example: The Primary Key of Users table does not have to be called
UserID. It is just anid. - Follow naming conventions and semantics. Tables MUST always be named in Plural and Foreign Keys are always named in Singular. Example: The JOIN should work on Users.id = Profiles.user_id
- Enjoy, and git gud!
Installation
pip install restapigen
Usage
To run the autogeneration script, use
RESTApiGen --user <username> --database <dbname> --password <password>
RESTApiGen -u <username> -d <dbname> -p <password>
List of arguments
| Argument | Abbreviation | Usage |
|---|---|---|
| --user | -u | Enter the username |
| --password | -p | Enter the password |
| --database | -d | Enter the database name |
| --host | -ho | (Optional) Enter the hostname |
| --port | -po | (Optional) Enter the port number |
Security Warning
- Commands entered in the terminal can be viewed, in most cases it preserves the history.
- It is highly recommended that you store the password as an environment variable and only call the environment variable.
- Since the API Generator cannot access environment variable or identify whether you entered an environment variable name or an actual password, it will consider the literal input as a password.
- You are advised to modify the source code after generation and secure the app.
License
The code is distributed under MIT license. Read the licence document in the source code to know more.
Author
Written by: Saiyam Jain Collaborator: Karma Dice
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file RESTApiGen-0.1.5.tar.gz.
File metadata
- Download URL: RESTApiGen-0.1.5.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3313169094799dca0ab25753d26418e471368c02eb3a741a464d44fd7948a2f5
|
|
| MD5 |
c8a0404cc5d97c447864885df6a6e4b4
|
|
| BLAKE2b-256 |
adb3babd5a6e8eda017f783969fb20cba05cf648a231e48ca100e7d541127437
|
File details
Details for the file RESTApiGen-0.1.5-py3-none-any.whl.
File metadata
- Download URL: RESTApiGen-0.1.5-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a273162b4a10e323abcdb141458487e86aa5f1b4ce7fef91fc08c7640fa47499
|
|
| MD5 |
71952da503d15c4b0657138099392c15
|
|
| BLAKE2b-256 |
6cfb8182eb6cb67e1c53e7b09ba705e7cdae799870a689ec17fcb92d8ce7dbe4
|