openapi-generators / openapi-python-client

Generate modern Python clients from OpenAPI
MIT License
1.26k stars 195 forks source link

refuses to generate valid allOf combinations #1083

Open rtaycher opened 1 month ago

rtaycher commented 1 month ago

Describe the bug My understanding of allOf is that its supposed to recursively combine 2+ dictionaries and only fail if multiple types cant be satisfied(such as if the same path has different types assigned). At first I thought it didn't like it if subdictionaries had different values but then I realized other openapi tools validated it and it didn't have conflicts.

I managed to cut down the example and even having the same two subdicts with the same name triggers the error

Cannot parse response for status code 200 (Properties has conflicting values), response will be omitted from generated client

openapi-example.yaml.json because github doesnt like yaml rename to yaml and run openapi-python-client generate --path openapi-example to verify.

https://editor.swagger.io/ validates it and will even let you generate official swagger client with this example

OpenAPI Spec File A link to an OpenAPI document which produces this issue. Ideally, write a minimal reproduction only containing the problematic pieces.

Additional context result

Generating example-client Warning(s) encountered while generating. Client was generated, but some pieces may be missing WARNING parsing GET /test within default.

Cannot parse response for status code 200 (Properties has conflicting values), response will be ommitted from generated client

Also apparently ommitted is a misspelling and it should be omitted

eli-bl commented 1 month ago

I think that my https://github.com/openapi-generators/openapi-python-client/issues/1090 is the same thing. I'm not sure which part of your spec it was failing on, but I tried your spec locally using my changes in https://github.com/openapi-generators/openapi-python-client/pull/1096 and it worked. That PR also fixes the "ommitted" typo that you pointed out.

rtaycher commented 1 month ago

Thanks @eli-bl . I'm not actually sure if this fixes the issue I was seeing, hopefully it does.

I found this big near the end of my time at my previous job and filed a simplified version of what I was seeing after I had moved on and no longer had access to the source yaml (plus a simpler example is better right?). Hopefully your fix helps the person who inherited my openapi tasks.