# Morpheus GraphQL Core
core Functionalities of Morpheus GraphQL, can be used to build GraphQL server, client ..
- parser
- validar
- api
## Build GraphQL api with Core
```hs
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
```