07 API REST
Nous avons découvert comment requêter une API REST, il est donc temps de découvrir comment en créer une.
Flask-RESTful
Flask-RESTful est une extension pour Flask qui prend en charge la création rapide d’API REST. C'est une abstraction légère qui fonctionne avec les ORM existants.
Installation
Comme toujours ?
pipenv install flask-restful
Démarrage rapide
Il est temps d’écrire notre première API REST.
Une API Flask-RESTful minimale ressemble à ceci:
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')
Vous savez désormais créer une api rest. Pour la tester vous pouvez utiliser l'extension restclient pour firefox par exemple.
Un exemple plus complexe avec notre modèle
Lister l'ensemble des éléments présents en base
from flask_restful import fields, marshal_with
boardgame_fields = {
'name': fields.String,
'release_date': fields.String,
'description': fields.String,
'slug': fields.String,
}
class BoardgamesAPI(Resource):
@marshal_with(boardgame_fields)
def get(self):
return [d for d in Boardgame.select()]
api.add_resource(BoardgamesAPI, '/api/boardgames/')
Lister un élément
class BoardgameAPI(Resource):
def get(self, boardgame_slug):
return Dinosaur.get(boardgame_slug)
api.add_resource(BoardgameAPI, '/api/boardgames/<boardgame_slug>')
Et les CRUD dans tous cela ?
Il va falloir modifier nos classes en ajoutant les méthodes suivantes:
class BoardgameAPI(Resource):
def delete(self, boardgame_slug):
pass
def put(self, boardgame_slug):
pass
class BoardgameAPI(Resource):
def post(self):
pass
En utilisant la documentation de flask-restful pouvez vous implémenter les cruds de l'api Dinosaur ?