Safe Haskell | None |
---|---|
Language | Haskell2010 |
Swagger™ is a project used to describe and document RESTful APIs.
The Swagger specification defines a set of files required to describe such an API. These files can then be used by the Swagger-UI project to display the API and Swagger-Codegen to generate clients in various languages. Additional utilities can also take advantage of the resulting files, such as testing tools.
- data Swagger = Swagger {
- swaggerInfo :: SwaggerInfo
- swaggerHost :: Maybe SwaggerHost
- swaggerBasePath :: Maybe FilePath
- swaggerSchemes :: Maybe [SwaggerScheme]
- swaggerConsumes :: SwaggerMimeList
- swaggerProduces :: SwaggerMimeList
- swaggerPaths :: SwaggerPaths
- swaggerDefinitions :: HashMap Text SwaggerSchema
- swaggerParameters :: HashMap Text SwaggerParameter
- swaggerResponses :: HashMap Text SwaggerResponse
- swaggerSecurityDefinitions :: HashMap Text SwaggerSecurityScheme
- swaggerSecurity :: [SwaggerSecurityRequirement]
- swaggerTags :: [SwaggerTag]
- swaggerExternalDocs :: Maybe SwaggerExternalDocs
- data SwaggerHost = SwaggerHost {}
- data SwaggerScheme
- data SwaggerInfo = SwaggerInfo {}
- data SwaggerContact = SwaggerContact {}
- data SwaggerLicense = SwaggerLicense {}
- data SwaggerPaths = SwaggerPaths {}
- data SwaggerPathItem = SwaggerPathItem {
- swaggerPathItemGet :: Maybe SwaggerOperation
- swaggerPathItemPut :: Maybe SwaggerOperation
- swaggerPathItemPost :: Maybe SwaggerOperation
- swaggerPathItemDelete :: Maybe SwaggerOperation
- swaggerPathItemOptions :: Maybe SwaggerOperation
- swaggerPathItemHead :: Maybe SwaggerOperation
- swaggerPathItemPatch :: Maybe SwaggerOperation
- swaggerPathItemParameters :: [SwaggerParameter]
- data SwaggerTag = SwaggerTag {}
- data SwaggerOperation = SwaggerOperation {
- swaggerOperationTags :: [Text]
- swaggerOperationSummary :: Maybe Text
- swaggerOperationDescription :: Maybe Text
- swaggerOperationExternalDocs :: Maybe SwaggerExternalDocs
- swaggerOperationOperationId :: Maybe Text
- swaggerOperationConsumes :: Maybe SwaggerMimeList
- swaggerOperationProduces :: Maybe SwaggerMimeList
- swaggerOperationParameters :: [SwaggerParameter]
- swaggerOperationResponses :: SwaggerResponses
- swaggerOperationSchemes :: Maybe [SwaggerScheme]
- swaggerOperationDeprecated :: Bool
- swaggerOperationSecurity :: [SwaggerSecurityRequirement]
- data SwaggerParameterType
- data SwaggerItemsType
- data SwaggerSchemaType
- type SwaggerFormat = Text
- data SwaggerCollectionFormat
- data SwaggerItemsCollectionFormat
- data SwaggerParameter = SwaggerParameter {}
- data SwaggerParameterSchema
- data SwaggerParameterOtherSchema = SwaggerParameterOtherSchema {
- swaggerParameterOtherSchemaIn :: SwaggerParameterLocation
- swaggerParameterOtherSchemaType :: SwaggerParameterType
- swaggerParameterOtherSchemaFormat :: Maybe SwaggerFormat
- swaggerParameterOtherSchemaAllowEmptyValue :: Bool
- swaggerParameterOtherSchemaItems :: Maybe SwaggerItems
- swaggerParameterOtherSchemaCollectionFormat :: Maybe SwaggerCollectionFormat
- swaggerParameterOtherSchemaCommon :: SwaggerSchemaCommon
- data SwaggerParameterLocation
- type SwaggerParamName = Text
- data SwaggerItems = SwaggerItems {}
- data SwaggerHeader = SwaggerHeader {}
- data SwaggerExample = SwaggerExample {}
- data SwaggerSchema = SwaggerSchema {
- swaggerSchemaType :: SwaggerSchemaType
- swaggerSchemaFormat :: Maybe SwaggerFormat
- swaggerSchemaTitle :: Maybe Text
- swaggerSchemaDescription :: Maybe Text
- swaggerSchemaRequired :: [SwaggerParamName]
- swaggerSchemaItems :: Maybe SwaggerSchemaItems
- swaggerSchemaAllOf :: Maybe [SwaggerSchema]
- swaggerSchemaProperties :: HashMap Text SwaggerSchema
- swaggerSchemaAdditionalProperties :: Maybe SwaggerSchema
- swaggerSchemaDiscriminator :: Maybe Text
- swaggerSchemaReadOnly :: Maybe Bool
- swaggerSchemaXml :: Maybe SwaggerXml
- swaggerSchemaExternalDocs :: Maybe SwaggerExternalDocs
- swaggerSchemaExample :: Maybe Value
- swaggerSchemaMaxProperties :: Maybe Integer
- swaggerSchemaMinProperties :: Maybe Integer
- swaggerSchemaCommon :: SwaggerSchemaCommon
- data SwaggerSchemaItems
- data SwaggerSchemaCommon = SwaggerSchemaCommon {
- swaggerSchemaDefault :: Maybe Value
- swaggerSchemaMaximum :: Maybe Integer
- swaggerSchemaExclusiveMaximum :: Maybe Bool
- swaggerSchemaMinimum :: Maybe Integer
- swaggerSchemaExclusiveMinimum :: Maybe Bool
- swaggerSchemaMaxLength :: Maybe Integer
- swaggerSchemaMinLength :: Maybe Integer
- swaggerSchemaPattern :: Maybe Text
- swaggerSchemaMaxItems :: Maybe Integer
- swaggerSchemaMinItems :: Maybe Integer
- swaggerSchemaUniqueItems :: Maybe Bool
- swaggerSchemaEnum :: Maybe [Value]
- swaggerSchemaMultipleOf :: Maybe Integer
- data SwaggerXml = SwaggerXml {}
- data SwaggerResponses = SwaggerResponses {}
- data SwaggerResponse = SwaggerResponse {}
- data SwaggerSecurityScheme = SwaggerSecurityScheme {}
- data SwaggerSecuritySchemeType
- newtype SwaggerSecurityRequirement = SwaggerSecurityRequirement {}
- data SwaggerApiKeyParams = SwaggerApiKeyParams {}
- data SwaggerApiKeyLocation
- data SwaggerOAuth2Params = SwaggerOAuth2Params {}
- data SwaggerOAuth2Flow
- type AuthorizationURL = Text
- type TokenURL = Text
- data SwaggerExternalDocs = SwaggerExternalDocs {}
- newtype SwaggerMimeList = SwaggerMimeList {}
- newtype URL = URL {}
Swagger specification
This is the root document object for the API specification.
Swagger | |
|
data SwaggerHost Source
The host (name or ip) serving the API. It MAY include a port.
SwaggerHost | |
|
data SwaggerScheme Source
The transfer protocol of the API.
Info types
data SwaggerInfo Source
The object provides metadata about the API. The metadata can be used by the clients if needed, and can be presented in the Swagger-UI for convenience.
SwaggerInfo | |
|
data SwaggerContact Source
Contact information for the exposed API.
SwaggerContact | |
|
data SwaggerLicense Source
License information for the exposed API.
SwaggerLicense | |
|
Paths
data SwaggerPaths Source
The available paths and operations for the API.
SwaggerPaths | |
|
data SwaggerPathItem Source
Describes the operations available on a single path.
A
may be empty, due to ACL constraints.
The path itself is still exposed to the documentation viewer
but they will not know which operations and parameters are available.SwaggerPathItem
SwaggerPathItem | |
|
Operations
data SwaggerTag Source
Allows adding meta data to a single tag that is used by SwaggerOperation
.
It is not mandatory to have a SwaggerTag
per tag used there.
SwaggerTag | |
|
data SwaggerOperation Source
Describes a single API operation on a path.
SwaggerOperation | |
|
Types and formats
data SwaggerItemsType Source
data SwaggerSchemaType Source
type SwaggerFormat = Text Source
data SwaggerCollectionFormat Source
Determines the format of the array.
SwaggerCollectionCSV | Comma separated values: |
SwaggerCollectionSSV | Space separated values: |
SwaggerCollectionTSV | Tab separated values: |
SwaggerCollectionPipes | Pipe separated values: |
SwaggerCollectionMulti | Corresponds to multiple parameter instances
instead of multiple values for a single instance |
data SwaggerItemsCollectionFormat Source
Determines the format of the nested array.
SwaggerItemsCollectionCSV | Comma separated values: |
SwaggerItemsCollectionSSV | Space separated values: |
SwaggerItemsCollectionTSV | Tab separated values: |
SwaggerItemsCollectionPipes | Pipe separated values: |
Parameters
data SwaggerParameter Source
Describes a single operation parameter. A unique parameter is defined by a combination of a name and location.
SwaggerParameter | |
|
data SwaggerParameterOtherSchema Source
SwaggerParameterOtherSchema | |
|
data SwaggerParameterLocation Source
SwaggerParameterQuery | Parameters that are appended to the URL.
For example, in |
SwaggerParameterHeader | Custom headers that are expected as part of the request. |
SwaggerParameterPath | Used together with Path Templating, where the parameter value is actually part of the operation's URL.
This does not include the host or base path of the API.
For example, in |
SwaggerParameterFormData | Used to describe the payload of an HTTP request when either |
type SwaggerParamName = Text Source
data SwaggerItems Source
SwaggerItems | |
|
data SwaggerHeader Source
SwaggerHeader | |
|
data SwaggerExample Source
Schema
data SwaggerSchema Source
data SwaggerSchemaItems Source
data SwaggerSchemaCommon Source
SwaggerSchemaCommon | |
|
data SwaggerXml Source
SwaggerXml | |
|
Responses
data SwaggerResponses Source
A container for the expected responses of an operation. The container maps a HTTP response code to the expected response. It is not expected from the documentation to necessarily cover all possible HTTP response codes, since they may not be known in advance. However, it is expected from the documentation to cover a successful operation response and any known errors.
SwaggerResponses | |
|
data SwaggerResponse Source
Describes a single response from an API Operation.
SwaggerResponse | |
|
Security
data SwaggerSecurityScheme Source
SwaggerSecurityScheme | |
|
newtype SwaggerSecurityRequirement Source
Lists the required security schemes to execute this operation. The object can have multiple security schemes declared in it which are all required (that is, there is a logical AND between the schemes).
API key
data SwaggerApiKeyParams Source
SwaggerApiKeyParams | |
|
data SwaggerApiKeyLocation Source
The location of the API key.
OAuth2
data SwaggerOAuth2Params Source
SwaggerOAuth2Params | |
|
data SwaggerOAuth2Flow Source
type AuthorizationURL = Text Source
The authorization URL to be used for OAuth2 flow. This SHOULD be in the form of a URL.
The token URL to be used for OAuth2 flow. This SHOULD be in the form of a URL.
External documentation
data SwaggerExternalDocs Source
Allows referencing an external resource for extended documentation.
SwaggerExternalDocs | |
|
Miscellaneous
newtype SwaggerMimeList Source