Не работает Flask swagger api (POST-запрос)

Вот код на Python:

from flask import Flask, jsonify, send_from_directory, request
from flask_swagger_ui import get_swaggerui_blueprint


app = Flask(__name__)

information = {
   "percentformula": {"formula": "b = a * p/100", "a": "number", "p": "percent", "b": "p percents from a"},
}


@app.route('/percent/<formula>', methods=['GET'])
def get_formula(formula):
   f = information.get(formula)
   if f:
       return jsonify(f), 200
   else:
       return jsonify(message="Formula not found"), 404

@app.route('/percent', methods=['POST'])
def evaluate_percent():
    data = request.json()
    try:
        a, p = data["number"], data["percent"]
    except ValueError:
        return jsonify(message="Not enough values to count"), 201
    try:
        a = int(a)
        p = int(p)
    except ValueError:
        return jsonify(message="not all arguments are integer"), 202
    if p > 100:
        return jsonify(message="Percent cannot be more than 100"), 203
    b = a * p /100
    response = {"result": b, "message": "result was obtained successfully"},
    if b:
       return jsonify(response), 200
    else:
       return jsonify(message="Error"), 404

# Swagger UI конфигурация
SWAGGER_URL = '/docs'  # URL для Swagger UI
API_URL = '/swagger.json'  # URL для JSON документации


swaggerui_blueprint = get_swaggerui_blueprint(
   SWAGGER_URL,
   API_URL,
   config={
       'app_name': "Percent evaluating API"
   }
)
app.register_blueprint(swaggerui_blueprint, url_prefix=SWAGGER_URL)

# Маршрут для swagger.json
@app.route('/swagger.json')
def swagger_json():
   return send_from_directory('.', 'swagger.json')


# Запуск сервера
if __name__ == '__main__':
   app.run(debug=True, port=5001)

Вот файл swagger.json:

{
    "swagger": "2.0",
    "info": {
        "title": "Percent evaluating API",
        "description": "API для рассчёта процента от числа",
        "version": "1.0.0"
    },
    "basePath": "/",
    "paths": {
        "/percent/{formula}": {
            "get": {
                "summary": "Получить формулу для полсчёта процента от числа",
                "parameters": [
                    {
                        "name": "formula",
                        "in": "path",
                        "required": true,
                        "type": "string",
                        "description": "Формула для рассчёта процента от числа"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Успешный ответ",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "formula": {
                                    "type": "string"
                                },
                                "a": {
                                    "type": "string"
                                },
                                "p": {
                                    "type": "string"
                                },
                                "b": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Формула не найдена"
                    }
                }
            }
        },
        "/percent": {
            "post": {
                "summary": "Рассчёт процента от числа",
                "parameters": [
                    {
                        "name": "number",
                        "in": "query",
                        "required": true,
                        "type": "integer",
                        "description": "Число, от которого необходимо рассчитать процент"
                    },
                    {
                        "name": "percent",
                        "in": "query",
                        "required": true,
                        "type": "integer",
                        "description": "Процент числа"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Успешный ответ",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string"
                                },
                                "result": {
                                    "type": "number"
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "Введено недостаточно аргументов"
                    },
                    "202": {
                        "description": "Не все аргументы - целые числа"
                    },
                    "203": {
                        "description": "Процент не может быть больше 100"
                    },
                    "404": {
                        "description": "Формула не найдена"
                    }
                }
            }
        }
    }
}

Swagger выдаёт вот такую ошибку на POST запрос: Unsupported Media Type Did not attempt to load JSON data because the request Content-Type was not 'application/json'.

GET запрос работает нормально. Как можно установить этот media type? Помогите, совсем не понимаю, в чём проблема...

я пробовала вставлять media type в json, однако это выдаёт ошибку.


Ответы (0 шт):