openapi-python-client icon indicating copy to clipboard operation
openapi-python-client copied to clipboard

Add support for content-type for yaml files

Open dtkav opened this issue 4 years ago • 1 comments

Is your feature request related to a problem? Please describe. yaml is a common media type in APIs for serving/accepting openapi specs, manifests, k8s configs, etc.

For example: https://github.com/APIs-guru/openapi-directory/blob/8af5478deebb70c01dc8155825528c18353d9deb/APIs/stoplight.io/api-v1/openapi.yaml#L171-L177

Describe the solution you'd like It would be great to support one or more of the (unfortunately many) media types for yaml. I found examples of the following in https://github.com/APIs-guru/openapi-directory/ : application/x-yaml application/yaml text/x-yaml text/yaml

IMO it probably makes sense to only support the "json subset" of YAML with a strict safe-loader, but I suppose it might make sense for it to be configurable.

Describe alternatives you've considered It could make sense to support a plugin interface for content-types - it will be impossible to support them all :/ It also seems reasonable for openapi-python-client to specialize in json and pass other types as files.

dtkav avatar Apr 24 '21 01:04 dtkav

Is the goal specifically just to return the text of the yaml or to parse the yaml into some OpenAPI-defined type? Having all unregistered content types just get spit into a bytes or similar feels like a pretty easy win, then you can do whatever you want with it. Adding the ability to parse YAML and stick it into a response object will require us to add a dependency.

I have never encountered YAML as a web response that was intended to be used programmatically in a way other than text (e.g. download this openapi.yaml and put it into a file, or pipe it into a generator). But I feel like the content type might as well just be text if it wasn't intended to be parsed.

dbanty avatar Apr 25 '21 21:04 dbanty