A simple class-based view for Sanic for simple RESTful APIs
Project description
Gotta simplify your REST APIs creation!
Sanic's built-in HTTPMethodView
is a useful thing, but sometimes one wants more sugar.
Whay not?
Usage example
import logging
from sanic import Sanic
from sanic_restful import Api, ApiEndpoint
logger = logging.getLogger(__name__)
app = Sanic()
@app.middleware('response')
async def cors_headers(request, response):
"""
Add CORS headers to all responses, including errors.
"""
response.headers['Access-Control-Allow-Origin'] = request.headers.get('Origin', '*')
response.headers['Access-Control-Allow-Credentials'] = 'true'
response.headers['Access-Control-Allow-Methods'] = 'POST, PUT, PATCH, DELETE, OPTIONS, GET'
response.headers['Access-Control-Allow-Headers'] = "X-Requested-With,X-Prototype-Version," \
"Content-Type,Cache-Control,Pragma,Origin,Cookie"
response.headers['Access-Control-Max-Age'] = '3600'
class TodoResource(ApiEndpoint):
# method_decorators = [auth.auth_required]
endpoint = 'todos/<todo_id>'
async def get(self, request, todo_id):
return {'id': todo_id}
async def post(self, request, todo_id):
return {'id': todo_id}, 201
api = Api(app, [TodoResource], '/v0.9/')
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000, debug=True)
And let's try it:
$ http POST http://localhost:8000/v0.9/todos/1
HTTP/1.1 201 Created
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: X-Requested-With,X-Prototype-Version,Content-Type,Cache-Control,Pragma,Origin,Cookie
Access-Control-Allow-Methods: POST, PUT, PATCH, DELETE, OPTIONS, GET
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 3600
Connection: keep-alive
Content-Length: 10
Content-Type: application/json
Keep-Alive: 5
{
"id": "1"
}
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
File details
Details for the file sanic_simple_restful-0.1.0.tar.gz
.
File metadata
- Download URL: sanic_simple_restful-0.1.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c04f21e5ce87684b31d1e14dbc767e3ed369d64c95e709f548cafb9ab09ae1e |
|
MD5 | 7d4589d7ad313227d2121ef57a5e2d30 |
|
BLAKE2b-256 | cf56b73897cd2a18d7a8580d44a2522faa44b39ef29ba5af9ba034de56e11869 |
File details
Details for the file sanic_simple_restful-0.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: sanic_simple_restful-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51f756371a2dcdec6e94949c5de77dd178c38eaa4aad7608382242fcc352e491 |
|
MD5 | d7af7b4b10be3b20f574f1d1cacddd83 |
|
BLAKE2b-256 | 201de906790fc1fa445186a87e1792398e355a13c9658a7a7dc7ff490e5a5cfd |