Convert a type into a plain Schema.
In previous versions of the package there was a separate type called ParamSchema, which was
included in a greater Schema. Now this is a single class, but distinction for schema generators
for "simple" types is preserved.
ToParamSchema is suited only for primitive-like types without nested fields and such.
An example type and instance:
{-# LANGUAGE OverloadedStrings #-} -- allows to write Text literals
import Control.Lens
data Direction = Up | Down
instance ToParamSchema Direction where
toParamSchema _ = mempty
& type_ ?~ OpenApiString
& enum_ ?~ [ "Up", "Down" ]
Instead of manually writing your ToParamSchema instance you can
use a default generic implementation of toParamSchema.
To do that, simply add deriving Generic clause to your datatype
and declare a ToParamSchema instance for your datatype without
giving definition for toParamSchema.
For instance, the previous example can be simplified into this:
{-# LANGUAGE DeriveGeneric #-}
import GHC.Generics (Generic)
data Direction = Up | Down deriving Generic
instance ToParamSchema Direction
Methods
toParamSchema :: Proxy a -> SchemaConvert a type into a plain parameter schema.
Example1 expression BSL.putStrLn $ encodePretty $ toParamSchema (Proxy :: Proxy Integer){ "type": "integer"}
Instances48ToParamSchema, …
ToParamSchema SetCookieDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema IntegerDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema NaturalDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema StringDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema AllDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema AnyDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema VersionDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema Int16Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema Int32Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema Int64Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema Int8Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema Word16Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema Word32Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema Word64Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema Word8Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema BoolDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema CharDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema DoubleDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema FloatDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema IntDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema WordDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema ScientificDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema TextDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema TextDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema DayDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaFormat
"date"corresponds toyyyy-mm-ddformat.ToParamSchema NominalDiffTimeDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema UTCTimeDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaExample1 expression toParamSchema (Proxy :: Proxy UTCTime) ^. formatJust "yyyy-mm-ddThh:MM:ssZ"
ToParamSchema LocalTimeDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaExample1 expression toParamSchema (Proxy :: Proxy LocalTime) ^. formatJust "yyyy-mm-ddThh:MM:ss"
ToParamSchema TimeOfDayDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaExample1 expression toParamSchema (Proxy :: Proxy TimeOfDay) ^. formatJust "hh:MM:ss"
ToParamSchema ZonedTimeDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaExample1 expression toParamSchema (Proxy :: Proxy ZonedTime) ^. formatJust "date-time"
ToParamSchema UUIDDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema ()Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaExample1 expression BSL.putStrLn $ encodePretty $ toParamSchema (Proxy :: Proxy ()){ "enum": [ "_" ], "type": "string"}
ToParamSchemaByteStringError ByteString => ToParamSchema ByteStringDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchemaByteStringError ByteString => ToParamSchema ByteStringDefined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Set a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Identity a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (First a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Last a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Dual a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Product a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Sum a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (HashSet a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Vector a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Vector a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Vector a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema (Vector a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaToParamSchema a => ToParamSchema [a]Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchemaHasResolution a => ToParamSchema (Fixed a)Defined in openapi3-3.2.4 · Data.OpenApi.Internal.ParamSchema