Skip to content

Swagger API doesn't support requests with empty body #10

Open
@asqui

Description

@asqui

Not all requests require a body, however it looks like the Swagger API does not permit a request with an empty body.

For example, the close alert method does not have any mandatory JSON body fields, which implies you should be able to call it like this:

client.close_alert(alert.id)

Or more explicitly:

client.close_alert(alert.id, body=CloseAlertRequest())

However both of these fail with:

ApiException: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({})
HTTP response body: {"message":"Body should be a JSON object","took":0.003,"requestId":"b5648d74-cee1-47ed-b8d7-1d458f31101a"}

I believe this section of the Swagger API code is at least partly responsible for this:

https://github.com/opsgenie/opsgenie-python-sdk/blob/master/opsgenie/swagger_client/rest.py#L152

                if body:
                    request_body = json.dumps(body)

My current workaround is to always specify source for these requests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions