Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data SchemaContext schema = SchemaContext {}
- type URISchemaMap schema = HashMap Text schema
- data SchemaCache schema = SchemaCache {
- _startingSchema :: !schema
- _cachedSchemas :: !(URISchemaMap schema)
- fetchReferencedSchemas :: forall schema. FromJSON schema => (schema -> [schema]) -> (schema -> Maybe Text) -> (schema -> Maybe Text) -> URISchemaMap schema -> SchemaContext schema -> IO (Either Text (SchemaCache schema))
- simpleGET :: Manager -> Text -> IO ByteString
- fetchReferencedSchemas' :: forall schema. FromJSON schema => (schema -> [schema]) -> (schema -> Maybe Text) -> (schema -> Maybe Text) -> (Text -> IO ByteString) -> URISchemaMap schema -> SchemaContext schema -> IO (SchemaCache schema)
- includeSubschemas :: forall schema. (schema -> [schema]) -> (schema -> Maybe Text) -> SchemaContext schema -> [SchemaContext schema]
Documentation
data SchemaContext schema Source
SchemaContext | |
|
Eq schema => Eq (SchemaContext schema) Source | |
Show schema => Show (SchemaContext schema) Source |
type URISchemaMap schema = HashMap Text schema Source
Keys are URIs (without URI fragments).
data SchemaCache schema Source
SchemaCache | |
|
Eq schema => Eq (SchemaCache schema) Source | |
Show schema => Show (SchemaCache schema) Source |
fetchReferencedSchemas :: forall schema. FromJSON schema => (schema -> [schema]) -> (schema -> Maybe Text) -> (schema -> Maybe Text) -> URISchemaMap schema -> SchemaContext schema -> IO (Either Text (SchemaCache schema)) Source
Take a schema. Retrieve every document either it or its subschemas
include via the "$ref" keyword. Load a SchemaCache
out with them.
simpleGET :: Manager -> Text -> IO ByteString Source
Based on simpleHttp
from http-conduit.
fetchReferencedSchemas' :: forall schema. FromJSON schema => (schema -> [schema]) -> (schema -> Maybe Text) -> (schema -> Maybe Text) -> (Text -> IO ByteString) -> URISchemaMap schema -> SchemaContext schema -> IO (SchemaCache schema) Source
A version of fetchReferencedSchema
s where the function to fetch
schemas is provided by the user. This allows restrictions to be added,
e.g. rejecting non-local URIs.
includeSubschemas :: forall schema. (schema -> [schema]) -> (schema -> Maybe Text) -> SchemaContext schema -> [SchemaContext schema] Source
Return the schema passed in as an argument, as well as every subschema contained within it.