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 p
More generally, is there a scenario where (undeclare (declareNamedSchema (Proxy @a)))._namedSchemaSchema /= toParamSchema (Proxy @a) makes sense for any type a?
Hello,
While writing manual OpenApi instances for a phantom type wrapping
UUIDtoday, I noticed that(undeclare (declareNamedSchema (Proxy @UUID)))._namedSchemaSchema /= toParamSchema (Proxy @UUID), which I find surprising (not just for UUID but for any type).Is there a reason why the
exampleis only forToSchemaand not forToParamSchema?That looks like a bug to me.
I would expect the implementation to be
More generally, is there a scenario where
(undeclare (declareNamedSchema (Proxy @a)))._namedSchemaSchema /= toParamSchema (Proxy @a)makes sense for any typea?