PyForgeAPI is a fast, very simple to use and understand open source python library for developing RESTful APIs.
pip install PyForgeAPI
from PyForgeAPI import Routes, Response, Request
# Debug mode is False by default
routes = Routes(debug=True)
@routes.get('/')
async def home(req: Request, res: Response):
# Get query params age
age = req.query['age']
# Recovery all persons from database with this age
res.html("<h1>Listing all persons</h1><ul><li>A Person</li></ul>").status(200).send()
routes.run(application="Person API", host="localhost", port=3000)
from PyForgeAPI import Routes, Response, Request
routes = Routes().cors()
@routes.get('/user/:id')
@routes.post('/user/:id')
async def getUser(req: Request, res: Response):
# get users from database
for i in users:
if i["id"] == req.params["id"]:
res.json(i).send()
return
res.send_status(404)
routes.run(application="Person API", host="localhost", port=3000)
from PyForgeAPI import Routes, Response, Request
routes = Routes()
@routes.post('/user')
async def createUser(req: Request, res: Response):
user = req.body.json
# Save user in database
res.text("Created").status(201).send()
routes.run(application="Person API", host="localhost", port=3000)
from PyForgeAPI import Routes, Response, Request
routes = Routes()
@routes.put('/user')
async def createUser(req: Request, res: Response):
user = req.body.json
# Update user in database
res.html('<h1>Created</h1>').status(201).send()
routes.run(application="Person API", host="localhost", port=3000)
# chat.py
from PyForgeAPI import Request, Response, Module
chat = Module('chat', '/chat')
@chat.get('/')
async def index(req: Request, res: Response):
res.send_status(200)
@chat.get('/chat')
async def test(req: Request, res: Response):
res.send_status(200)
# message.py
from PyForgeAPI import Request, Response, Module
message = Module('message', '/message')
@message.get('/')
async def index(req: Request, res: Response):
res.send_status(200)
@message.get('/message')
async def test(req: Request, res: Response):
res.send_status(200)
# main.py
from decorators.routes import Routes
from message import message
from chat import chat
routes = Routes(debug=True).cors()
routes.bind(message)
routes.bind(chat)
routes.run(host='localhost')
See more examples in examples folder
Version 1.4.0
- Automatic docs Page
- Automatic reload in development mode (EXPERIMENTAL)
- Request method PATCH
- More security in CORS
- JSON Database module
- Better params and query params recovery in routes
- Improved route logging
Open pull request 😎