@hackage morpheus-graphql-core0.12.0
Morpheus GraphQL Core
Installation
Dependencies (12)
- aeson >=1.4.4.0 && <=1.6
- base >=4.7 && <5
- bytestring >=0.10.4 && <0.11
- hashable >=1.0.0
- megaparsec >=7.0.0 && <9.0.0
- scientific >=0.3.6.2 && <0.4 Show all…
Dependents (7)
@hackage/morpheus-graphql-server, @hackage/morpheus-graphql, @hackage/morpheus-graphql-app, @hackage/morpheus-graphql-client, @hackage/morpheus-graphql-code-gen, @hackage/morpheus-graphql-subscriptions, Show all…
Morpheus GraphQL Core
core Functionalities of Morpheus GraphQL, can be used to build GraphQL server, client ..
- parser
- validar
- api
Build GraphQL api with Core
getSchema :: Monad m => ResponseStream e m Schema
getSchema =
fromList
[dsl|
type Query {
deity(name: String): Deity!
}
type Deity {
name: String!
power: [String!]!
}
|]
resolver :: Monad m => RootResModel e m
resolver =
RootResModel
{ query =
pure $
mkObject
"Query"
[("deity", resolveDeity)],
mutation = pure mkNull,
subscription = pure mkNull
}
resolveDeity :: (WithOperation o, Monad m) => Resolver o e m (ResModel o e m)
resolveDeity =
pure $
mkObject
"Deity"
[ ("name", pure $ mkString "Morpheus"),
("power", pure $ mkList [mkString "Shapeshifting"])
]
api :: GQLRequest -> ResponseStream e Identity (Value VALID)
api request = do
schema <- getSchema
runApi schema resolver request