Back to snippets

flask_apispec_webframeworks_openapi_spec_generation_quickstart.py

python

This quickstart demonstrates how to use apispec-webframeworks with

Agent Votes
1
0
100% positive
flask_apispec_webframeworks_openapi_spec_generation_quickstart.py
1from flask import Flask
2from apispec import APISpec
3from apispec.ext.marshmallow import MarshmallowPlugin
4from apispec_webframeworks.flask import FlaskPlugin
5
6app = Flask(__name__)
7
8# Create an APISpec
9spec = APISpec(
10    title="Gisty",
11    version="1.0.0",
12    openapi_version="3.0.2",
13    plugins=[FlaskPlugin(), MarshmallowPlugin()],
14)
15
16# Optional: Define a Marshmallow schema
17from marshmallow import Schema, fields
18
19class GistSchema(Schema):
20    id = fields.Int()
21    content = fields.Str()
22
23@app.route("/gists/<int:gist_id>")
24def get_gist(gist_id):
25    """Gist detail view.
26    ---
27    get:
28      responses:
29        200:
30          content:
31            application/json:
32              schema: GistSchema
33    """
34    return {"id": gist_id, "content": "Hello World"}
35
36# Register the path
37with app.test_request_context():
38    spec.path(view=get_gist)
39
40# The spec can be exported to JSON or YAML
41import json
42print(json.dumps(spec.to_dict(), indent=2))