Flask-RestGlue integrates Flask, MongoDB, OpenAPI in a simple and elegant way
Project description
Flask-RestGlue(ALPHA)
Integrates Flask + MongoDB + OpenAPI in a simple and elegant way!
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Contents
Table of Contents
Example
For a fullstack boilerplate, visit https://github.com/abassel/Flask_RestGlue_Svelte_Docker
import mongoengine as mongo
from flask_rest_glue import FlaskRestGlue
mongo.connect("pyglue", host='localhost:27017')
api = FlaskRestGlue()
@api.rest_model()
class User(mongo.Document):
# id = mongo.StringField(primary_key=True)
email = mongo.StringField(primary_key=True)
password = mongo.StringField()
api.run()
Go to http://127.0.0.1:5000/spec_doc or http://127.0.0.1:5000/spec_rdoc to see the documentation bellow:
Expected output:
curl -v -d '{"email":"a@b.com","password":"xyz"}' \
-H "Content-Type: application/json" http://localhost:5000/user
#< HTTP/1.0 200 OK
#< Content-Type: application/json
#< Content-Length: 45
#<
#{
# "_id": "a@b.com",
# "password": "xyz"
#}
curl -v http://localhost:5000/users
#< HTTP/1.0 200 OK
#< Content-Type: application/json
#< Content-Length: 57
#<
#[
# {
# "_id": "a@b.com",
# "password": "xyz"
# }
#]
curl -v http://localhost:5000/user/a@b.com
#< HTTP/1.0 200 OK
#< Content-Type: application/json
#< Content-Length: 45
#<
#{
# "_id": "a@b.com",
# "password": "xyz"
#}
curl -v -X PUT -d '{"password":"new_pass"}' \
-H "Content-Type: application/json" http://localhost:5000/user/a@b.com
#< HTTP/1.0 200 OK
#< Content-Type: application/json
#< Content-Length: 50
#<
#{
# "_id": "a@b.com",
# "password": "new_pass"
#}
curl -v -X DELETE http://localhost:5000/user/a@b.com
#< HTTP/1.0 200 OK
#< Content-Type: application/json
#< Content-Length: 45
#<
#{
# "_id": "a@b.com",
# "password": "xyz"
#}
Quick Start
Requires docker and python 3.9
1 - install local MongoDB
mkdir -p ~/mongodata
docker run -d --rm -p 27017:27017 -v ~/mongodata:/data/db --name mongodb mongo
2 - Install this library
pip install Flask-RestGlue
3 - Pull the code
curl -s -O -L https://github.com/abassel/Flask-RestGlue/blob/master/example/tut01_hello_world.py
curl -s -O -L https://github.com/abassel/Flask-RestGlue/blob/master/example/tut01_hello_world.sh
4 - Run the code
python tut01_hello_world.py
In another terminal window
bash tut01_hello_world.sh
References :notebook:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Flask-RestGlue-0.0.4.tar.gz
(12.0 kB
view details)
Built Distribution
File details
Details for the file Flask-RestGlue-0.0.4.tar.gz
.
File metadata
- Download URL: Flask-RestGlue-0.0.4.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.4.0-1032-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e98819fc2dc00d71b56c1005ba784b864d98619123ae96385469f050974a2a00 |
|
MD5 | af24125fac56fd9d0c269f9de715ff14 |
|
BLAKE2b-256 | 400813f516d46a8c6f1fc94e2ddb7ec13e089330e11144b194408c58e7a3621a |
File details
Details for the file Flask_RestGlue-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: Flask_RestGlue-0.0.4-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.4.0-1032-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f68cc607b22eec318e27fdcd0520da8e0343ae9f7cc866499404fc56afb5a3a |
|
MD5 | 081dd196f1a6c9f60b55f3dbafbc21c7 |
|
BLAKE2b-256 | d8cb4f4f3cf7f8f180fabd4eb72fee2f29519c6ede95101e75b2f98e98975941 |