@@ -52,6 +52,7 @@ spec = do
52 describe "Parameters Definition Object" $ parametersDefinitionExample <~> parametersDefinitionExampleJSON
52 describe "Parameters Definition Object" $ parametersDefinitionExample <~> parametersDefinitionExampleJSON
53 describe "Responses Definition Object" $ responsesDefinitionExample <~> responsesDefinitionExampleJSON
53 describe "Responses Definition Object" $ responsesDefinitionExample <~> responsesDefinitionExampleJSON
54 describe "Security Definitions Object" $ securityDefinitionsExample <~> securityDefinitionsExampleJSON
54 describe "Security Definitions Object" $ securityDefinitionsExample <~> securityDefinitionsExampleJSON
55+ describe "Swagger Object" $ swaggerExample <~> swaggerExampleJSON
56main :: IO ()
57main :: IO ()
57main = hspec spec
58main = hspec spec
@@ -496,3 +497,114 @@ securityDefinitionsExampleJSON = [aesonQQ|
501+-- =======================================================================
503+-- =======================================================================
505+swaggerExample :: Swagger
506+swaggerExample = mempty
507+ { swaggerBasePath = Just "/"
508+ , swaggerSchemes = Just [Http]
509+ , swaggerInfo = mempty
510+ { swaggerInfoVersion = "1.0"
511+ , swaggerInfoTitle = "Todo API"
512+ , swaggerInfoLicense = Just SwaggerLicense
513+ { swaggerLicenseName = "MIT"
514+ , swaggerLicenseUrl = Just (URL "http://mit.com") }
515+ , swaggerInfoDescription = Just "This is a an API that tests servant-swagger support for a Todo API" }
516+ , swaggerPaths = mempty
518+ [ ("/todo/{id}", mempty
519+ { swaggerPathItemGet = Just mempty
520+ { swaggerOperationResponses = mempty
521+ { swaggerResponsesResponses =
523+ { swaggerResponseSchema = Just mempty
524+ { swaggerSchemaExample = Just [aesonQQ|
527+ "description": "get milk"
529+ , swaggerSchemaType = SwaggerSchemaObject
530+ , swaggerSchemaDescription = Just "This is some real Todo right here"
531+ , swaggerSchemaProperties =
532+ [ ("created", mempty
533+ { swaggerSchemaType = SwaggerSchemaInteger
534+ , swaggerSchemaFormat = Just "int32" })
535+ , ("description", mempty
536+ { swaggerSchemaType = SwaggerSchemaString }) ] }
537+ , swaggerResponseDescription = "OK" }) ] }
538+ , swaggerOperationProduces = Just (SwaggerMimeList [ "application/json" ])
539+ , swaggerOperationParameters =
541+ { swaggerParameterRequired = True
542+ , swaggerParameterName = "id"
543+ , swaggerParameterDescription = Just "TodoId param"
544+ , swaggerParameterSchema = SwaggerParameterOther mempty
545+ { swaggerParameterOtherSchemaIn = SwaggerParameterPath
546+ , swaggerParameterOtherSchemaType = SwaggerParamString } } ]
547+ , swaggerOperationTags = [ "todo" ] } }) ] } }
549+swaggerExampleJSON :: Value
550+swaggerExampleJSON = [aesonQQ|
559+ "title": "Todo API",
561+ "url": "http://mit.com",
564+ "description": "This is a an API that tests servant-swagger support for a Todo API"
574+ "description": "get milk"
577+ "description": "This is some real Todo right here",
600+ "description": "TodoId param"