openapi-core icon indicating copy to clipboard operation
openapi-core copied to clipboard

[Bug]: Chunked request in requestes

Open jitka opened this issue 1 year ago • 1 comments

Actual Behavior

Raise exception when tried validate chunked request

Expected Behavior

Buffer request and use for validation

Steps to Reproduce

validate chunked request

OpenAPI Core Version

0.17.1

OpenAPI Core Integration

requests

Affected Area(s)

No response

References

No response

Anything else we need to know?

FIX:

class RequestsOpenAPIRequestFix(RequestsOpenAPIRequest):
    def __init__(self, *args):
        super().__init__(*args)
        self._body_buffer = ''

    @property
    def mimetype(self) -> str:
        return super().mimetype.split(';')[0]

    @property
    def body(self) -> Optional[str]:
        if isinstance(self.request.body, types.GeneratorType):
            for part in self.request.body:
                self._body_buffer += part.decode('utf-8')
            return self._body_buffer
        if self.mimetype.startswith('image'):
            return None
        return super().body

Would you like to implement a fix?

None

jitka avatar May 25 '23 08:05 jitka

This will require backward incompatible change in request objet api. We will need to use raw binary request body/response data (+ binary iterator) instead of text/string.

p1c2u avatar Oct 21 '23 11:10 p1c2u