File: changelog_090.py

package info (click to toggle)
python-flasgger 0.9.5%2Bdfsg.2-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,152 kB
  • sloc: javascript: 6,403; python: 3,665; makefile: 9; sh: 1
file content (91 lines) | stat: -rw-r--r-- 3,037 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
"""0.9.0 News and Changes

- Updated Swagger UI 3.x
- uiversion now defaults to 3
- 'hide_top_bar' config option to remove the green top bar
- 'fotter_text' added to customize the footer text (allows html and <script>)
- templates/flasgger/footer.html added and can be replaced to customization
  this footer.html is the right place for custom <script>
- 'top_text' added to customize the header text (allows html)
- templates/flasgger/top.html added and can be replaced to customization
- 'head_text' added to customize the <head> (allows html)
- templates/flasgger/head.html added and can be replaced to customization
- added 'doc_expansion' config to control the collapse
- added 'ui_params' to allow override of any swagger.ui values
"""

from flask import Flask, request
from flasgger import Swagger

app = Flask(__name__)
app.config['TEMPLATES_AUTO_RELOAD'] = True
app.config['SWAGGER'] = {
    'title': 'MyAPI',

    # UI version 3 is now the default
    # 'uiversion': '3',

    # This setup hides the green top bar
    'hide_top_bar': True,

    # this text is rendered in the footer
    # (optionally you can replace flasgger/footer.html template)
    'footer_text': '<b>Hello World </b><script>alert("Hello World!")</script>',

    # this text is rendered in the header
    # (optionally you can replace flasgger/header.html template)
    'top_text': '<b><span class="top_text">Welcome to my api </span></b>',

    # this text is rendered in the <head>
    # (optionally you can replace flasgger/head.html template)
    'head_text': '<style>.top_text{color: red;}</style>',

    # Control the collapse of each tag, '"none"' means all tags default closed
    # "none" - It'll Hide everything.
    # "list"- It'll expand/List all the operations only. (default)
    # "full" - It'll expand everything(Full expand as the name says).
    'doc_expansion': "list",

    # Allows overriding any of the uiparams
    # This is useful to override other stuff not provided by the above aliases
    'ui_params': {
        'apisSorter': 'alpha',
        'operationsSorter': 'alpha',
    },

    # Allows overriding any of the uiparams with Javascript expressions
    # This is useful to override other stuff not provided by the above aliases which cannot be serialized to a JSON string
    'ui_params_text': '''{
    "operationsSorter" : (a, b) => a.get("path").localeCompare(b.get("path"))
}'''
}

Swagger(app)


@app.route('/', methods=['GET', 'POST'])
def main_route():
    """
    Test Endpoint
    ---
    tags:
        -   Test
    parameters:
        -   name: data
            in: formData
            required: True
            type: string
            description: data to send
    responses:
        200:
            description: data received successfully
        404:
            description: data not found in request form
    """
    if 'data' not in request.form.keys():
        return 'data not found in request form', 404
    return 'data received: ' + str(request.form['data'])


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