Repository navigation
fix(openapi): handle request body media types with no schema - #7848
Open
ninglinLiu wants to merge 14 commits into
Open
ninglinLiu wants to merge 14 commits into
ninglinLiu wants to merge 14 commits into
Conversation
RestApiTool._prepare_request_params read media_type_object.schema_.type unconditionally. OpenAPI allows content entries with an empty MediaType (no schema), which made every call raise AttributeError. Treat a missing schema like a non-object and send the single body parameter as raw data. Fixes google#7838 This PR was prepared with AI assistance and reviewed/tested by the author.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Fixes #7838
RestApiTool._prepare_request_paramsreadmedia_type_object.schema_.typeunconditionally. OpenAPI allows a media type with no schema (e.g.content: {application/octet-stream: {}}).OperationParseralready normalizes that via_schema_from_openapi, so the tool is generated and offered to the model, but every call crashed withAttributeError: 'NoneType' object has no attribute 'type'.Treat a missing schema like a non-object body and send the single body parameter as raw
datawith the declared Content-Type.Test plan
application/octet-streamMediaType with no schema sends bytes and Content-TypeThis PR was prepared with AI assistance and reviewed/tested by the author.