sphinx-contrib / openapi

OpenAPI (fka Swagger) spec renderer for Sphinx.
https://sphinxcontrib-openapi.readthedocs.io
BSD 2-Clause "Simplified" License
111 stars 80 forks source link

Form data not accepted as POST requestBody #156

Open NTICompass opened 4 months ago

NTICompass commented 4 months ago

I have a yaml file using OpenAPI 3.0.3. All my POST requests have their requestBody described, and they all use application/x-www-form-urlencoded.

When rendered, none of the POST requests show the request data, even when using :examples:.

Here's an example from my yaml file:

  /login:
    post:
      description: Login and get user info
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                email:
                  type: string
                password:
                  type: string
              required:
                - email
                - password
      responses:
        200:
          description: User Info
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'

Here's how I am trying to render this:

.. openapi:: /openapi.yaml
   :examples:

Here's what gets rendered on the HTML page: 27 06 2024_shot_15:53:05

So, the response gets shown correctly, but not the requestBody.

Looking at openapi30.py, I see the following

https://github.com/sphinx-contrib/openapi/blob/e62e2986b66465e785a7ebd8905d639f1893dedc/sphinxcontrib/openapi/openapi30.py#L305

It's assuming that the requestBody will always be application/json, but my API uses application/x-www-form-urlencoded.