-
Notifications
You must be signed in to change notification settings - Fork 62
Open
Description
Hello,
While writing manual OpenApi instances for a phantom type wrapping UUID today, I noticed that (undeclare (declareNamedSchema (Proxy @UUID)))._namedSchemaSchema /= toParamSchema (Proxy @UUID), which I find surprising (not just for UUID but for any type).
instance ToParamSchema UUID where
toParamSchema _ = mempty
& type_ ?~ OpenApiString
& format ?~ "uuid"
instance ToSchema UUID.UUID where
declareNamedSchema p = pure $ named "UUID" $ paramSchemaToSchema p
& example ?~ toJSON (UUID.toText UUID.nil)Is there a reason why the example is only for ToSchema and not for ToParamSchema?
That looks like a bug to me.
I would expect the implementation to be
instance ToParamSchema UUID where
toParamSchema _ = mempty
& type_ ?~ OpenApiString
& format ?~ "uuid"
& example ?~ toJSON (UUID.toText UUID.nil)
instance ToSchema UUID.UUID where
declareNamedSchema p = pure $ named "UUID" $ paramSchemaToSchema pMore generally, is there a scenario where (undeclare (declareNamedSchema (Proxy @a)))._namedSchemaSchema /= toParamSchema (Proxy @a) makes sense for any type a?
Metadata
Metadata
Assignees
Labels
No labels