-
Notifications
You must be signed in to change notification settings - Fork 86
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
Comments
+1 for this i opened a issue in ent for the same problem ent/ent#4108 When I found this:
I really liked the idea to incorporate this. What I am doing now is creating a wrapper over the |
Implemented here: #1269 |
@lrstanley the logic merged. I am working now on the PR to the entoas's codebase to incorporated that. The basics are already there and a pr should be submitted today but it has to wait for the new ogen release |
you can watch the status here ent/contrib#590 |
@prgres looks like #1269 only covers Additionally, looking at the approach required to set the extensions, it feels rather painful having to interact with I will likely keep this open for those reasons -- I may submit a PR when I get around to it. As an aside, @prgres, keep an eye out for https://github.com/lrstanley/entrest -- I ran into many problems with entoas (and sister library ogent), in addition to its limited support for a lot of features I wanted (pagination, sorting, filtering, efficient/compliant OpenAPI spec, among other things). It also has direct support for an HTTP server/handler implementation (that supports all of the advanced features like pagination, filtering, etc). entrest isn't ready just yet, but I'm actively working towards v1. Will have full documentation to follow as well. |
@lrstanley That's true because I was mainly focused on implementing the I will def checkout the With saying that, I may even help you with yours. |
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
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 allMarshalJSON()
methods, if the yaml encoder supports inlining? Maybego-faster/jx
could be used (or may be overkill?)References
n/a
The text was updated successfully, but these errors were encountered: