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
Close
Hashes for sanic_simple_restful-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c04f21e5ce87684b31d1e14dbc767e3ed369d64c95e709f548cafb9ab09ae1e |
|
MD5 | 7d4589d7ad313227d2121ef57a5e2d30 |
|
BLAKE2b-256 | cf56b73897cd2a18d7a8580d44a2522faa44b39ef29ba5af9ba034de56e11869 |
Close
Hashes for sanic_simple_restful-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51f756371a2dcdec6e94949c5de77dd178c38eaa4aad7608382242fcc352e491 |
|
MD5 | d7af7b4b10be3b20f574f1d1cacddd83 |
|
BLAKE2b-256 | 201de906790fc1fa445186a87e1792398e355a13c9658a7a7dc7ff490e5a5cfd |