Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

extensions: support providing extensions in ogen.Spec, that can be marshalled to JSON #1228

Open
lrstanley opened this issue Apr 28, 2024 · 0 comments
Labels
enhancement New feature or request openapi-features OpenAPI features support issues

Comments

@lrstanley
Copy link

Description

I have a project that uses entgo and its associated extension entoas to generate a schema specification using ogen. It does this by using the ent graph, which has all type information and annotations to control what to add and exclude from the specification. This works relatively well today, however, it currently isn't possible to add OpenAPI extensions (x-<etc>) to the spec, and have it be marshalled to JSON.

This looks to be due to the json:"-" struct tags on all of the related extension fields, for example:

ogen/spec.go

Lines 83 to 84 in b41f78c

// Specification extensions.
Extensions Extensions `json:"-" yaml:",inline"`

I suspect this is due to encoding/json not supporting inlining for non-embedded fields, however, I am wondering if there is a way around this (maybe marshal to yaml, then to json in all MarshalJSON() methods, if the yaml encoder supports inlining? Maybe go-faster/jx could be used (or may be overkill?)

References

n/a

@lrstanley lrstanley added enhancement New feature or request openapi-features OpenAPI features support issues labels Apr 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request openapi-features OpenAPI features support issues
Projects
None yet
Development

No branches or pull requests

1 participant