Open abemedia opened 1 month ago
I'm happy to implement this feature, just wanted to first check if such a feature would be accepted and get alignment on the way it's configured.
It would be nice. This feature was requested before.
I think it is better to configure it via extension x-go-type
, since it also used by oapi-codegen
and go-swagger.
Thanks for getting back to me on this @tdakkota!
Both oapi-codegen and go-swagger use different formats though:
oapi-codegen
x-go-type: googleuuid.UUID
x-go-type-import:
path: github.com/google/uuid
name: googleuuid
go-swagger
x-go-type:
import:
package: github.com/google/uuid
alias: googleuuid
type: UUID
I personally still prefer the idea of writing a single field e.g.
x-go-type: github.com/google/uuid.UUID
We could also automatically alias it if there's a clash between package names.
What's your preference?
I personally still prefer the idea of writing a single field e.g.
x-go-type: github.com/google/uuid.UUID
Me too.
I didn't notice that oapi-codegen requires a x-go-type-import
. In that case, let's keep it x-ogen-type
.
Description
I'd like to propose adding support for custom
format
types. These could come from the configuration. Maybe something like the following example:This would result in a field with
format: decimal
to be of the typedecimal.Decimal
from the packagegithub.com/shopspring/decimal
.Alternatively, we could implement this as an extension e.g.
We can implement some checks to ensure the package is importable, as well as checking that the type implements one of the following interfaces:
Based on which of the interfaces it implements we can use a different template for encoding and decoding the value.
I'm happy to implement this feature, just wanted to first check if such a feature would be accepted and get alignment on the way it's configured.