Search code examples
validationswaggerflasgger

swagger: how to validate formData


So far I'm able to do swagger validation if the parameters are from "in": "body" or if the input expected is in a json format. However, I can't find how to validate a simple string entered as formData.

Below is my swagger script (in json format)

v1swag = {
    "cancels_post": {
        "tags": ["/api/v1"],
        "parameters": [
            {
                "name": "token",
                "in": "formData",
                "type": "string",
                "required": True,
                "description": "Cancels the provided token.",
            }
        ],
        "responses": {
            "200": {
                "description": "Success!",
            }
        }
    }
}

I removed the schema as it seems to only work for "in": "body"

I've been searching the net but can't seem to find the light. Though I will still be searching... Any hints would be greatly appreciated.

Thank you very much in advance.


Solution

  • A different source media type has to be consumed here. Specify "consumes" member to include media type of application/x-www-form-urlencoded.

    v1swag = {
        "cancels_post": {
            "tags": ["/api/v1"],
            "consumes": [
                "application/x-www-form-urlencoded"
             ],
            "parameters": [
                {
                    "name": "token",
                    "in": "formData",
                    "type": "string",
                    "required": True,
                    "description": "Cancels the provided token.",
                }
            ],
            "responses": {
                "200": {
                    "description": "Success!",
                }
            }
        }
    }