install flask and flasgger using:
pip install flask
pip install flasgger
then run flask with:
export FLASK_APP=api
export FLASK_ENV=development
flask run
documentation lives in : 127.0.0.1:5000/apidocs/
from flask import Flask, jsonify, request | |
from flasgger import Swagger, swag_from | |
app = Flask(__name__) | |
swagger = Swagger(app) | |
@app.route("/") | |
@swag_from('index.yml') | |
def say_hi(): | |
return jsonify({"result": "hi there"}), 200 | |
@app.route("/", methods=['POST']) | |
def get_something(): | |
""" | |
file: get_something.yml | |
""" | |
if request.json.get("tst_data"): | |
return jsonify({"result": "inserted!"}), 201 | |
return jsonify({"result": "failed"}), 400 | |
@app.route("/<int:id>/", methods=['DELETE']) | |
@swag_from("remove_something.yml") | |
def remove_something(id): | |
"""remove something route | |
this is the test for this route with a normal docstring. one would | |
be able to use the `file:` thing to be able to include the given | |
documentation in the file. | |
:param int: id of the object to be removed | |
""" | |
if id == 10: | |
return jsonify({"result": "removed!"}), 202 | |
return jsonify({"result": "failed"}), 204 | |
Get something and insert it | |
This route will receive some data and will insert it. | |
--- | |
parameters: | |
- name: tst_data | |
description: the header we want to be present | |
in: body | |
type: string | |
required: true | |
responses: | |
201: | |
description: inserted successfully | |
examples: | |
{"result": "inserted!"} | |
400: | |
description: missed some headers | |
examples: | |
{"result": "failed"} |
Index page | |
this is the index page which will say hi only:) | |
--- | |
responses: | |
200: | |
description: a dict object containing a `hi_there` value in there | |
Remove something | |
this will receive an id and will try to remove it | |
--- | |
parameters: | |
- name: id | |
description: the id of the object we want to remove | |
in: path | |
type: int | |
path: /id/ | |
required: true | |
responses: | |
202: | |
description: succesful remove | |
examples: | |
{"result": "removed!"} | |
204: | |
description: object could not be found to remove | |
examples: | |
{"result": "failed"} |