Skip to main content

Simple framework for creating REST APIs

Project description

Sanic-Restful-Api

Simple framework for creating REST APIs

Introduce

After writing Sanic for a long time, I found that there was no framework similar to flask-restful, so I wrote one myself.

flask-restful

Document

click me

Installation

pip install sanic-restful-api

Simple uses

from sanic import Sanic
from sanic_restful_api import reqparse, abort, Api, Resource

app = Sanic(__name__)
api = Api(app)

TODOS = {
    'todo1': {'task': 'build an API'},
    'todo2': {'task': '?????'},
    'todo3': {'task': 'profit!'},
}


def abort_if_todo_doesnt_exist(todo_id):
    if todo_id not in TODOS:
        abort(404, message="Todo {} doesn't exist".format(todo_id))


parser = reqparse.RequestParser()
parser.add_argument('task')

# Todo
#   show a single todo item and lets you delete them


class Todo(Resource):
    async def get(self, request, todo_id):
        abort_if_todo_doesnt_exist(todo_id)
        return TODOS[todo_id]

    async def delete(self, request, todo_id):
        abort_if_todo_doesnt_exist(todo_id)
        del TODOS[todo_id]
        return '', 204

    async def put(self, request, todo_id):
        args = parser.parse_args(request)
        task = {'task': args['task']}
        TODOS[todo_id] = task
        return task, 201


# TodoList
#   shows a list of all todos, and lets you POST to add new tasks
class TodoList(Resource):
    async def get(self, request):
        return TODOS

    async def post(self, request):
        args = parser.parse_args(request)
        todo_id = 'todo%d' % (len(TODOS) + 1)
        TODOS[todo_id] = {'task': args['task']}
        return TODOS[todo_id], 201


##
# Actually setup the Api resource routing here
##
api.add_resource(TodoList, '/todos')
api.add_resource(Todo, '/todos/<string:todo_id>')


if __name__ == '__main__':
    app.run(debug=True)

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

sanic-restful-api-0.0.8.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

sanic_restful_api-0.0.8-py2.py3-none-any.whl (20.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file sanic-restful-api-0.0.8.tar.gz.

File metadata

  • Download URL: sanic-restful-api-0.0.8.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.8

File hashes

Hashes for sanic-restful-api-0.0.8.tar.gz
Algorithm Hash digest
SHA256 f090f983c2cb2d1422230b296aab4ab86eced3f4da848e29ba060b75c13904d1
MD5 b4c76b13ebcd38abb3c0a947833d32aa
BLAKE2b-256 930b270e262fff7ffd76819917b5dbbfc870c46dd4fb0004306d632cc2f23db2

See more details on using hashes here.

File details

Details for the file sanic_restful_api-0.0.8-py2.py3-none-any.whl.

File metadata

  • Download URL: sanic_restful_api-0.0.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.8

File hashes

Hashes for sanic_restful_api-0.0.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d2f0e04472a32cee7ec26998d50bfc4bccc5ac8c39378c5c71ca9f246c90bfee
MD5 8fa14c1c3e7bbc548914593c960fea90
BLAKE2b-256 fa573fc5cde3d721d3c58ffa9219d1de809db6f691f59e220c74ba4210e4bc28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page