@hackage morpheus-graphql-app0.28.5
Morpheus GraphQL App
Installation
Dependencies (17)
- aeson >=1.3.1.1 && <3.0.0
- attoparsec-aeson >=2.1.0.0 && <3.0.0
- base >=4.7.0 && <5.0.0
- bytestring >=0.10.4 && <1.0.0
- containers >=0.4.2.1 && <1.0.0
- hashable >=1.0.0 && <2.0.0 Show all…
Dependents (3)
@hackage/morpheus-graphql-server, @hackage/morpheus-graphql, @hackage/morpheus-graphql-subscriptions
Morpheus GraphQL App
provides utilities for creating executable GraphQL applications for servers. You can use it to create a schema-first GraphQL server with dynamic typings.
Build schema-first GraphQL App with dynamic typings
schema.gql
type Deity {
name: String
power: [String!]
}
type Query {
deity(id: ID): Deity
}
App.hs
deityResolver :: Monad m => NamedResolverFunction QUERY e m
deityResolver arg =
object
[ ("name", pure "Morpheus"),
("power", pure $ list [enum "Shapeshifting"])
]
resolver :: Monad m => RootResolverValue e m
resolver =
queryResolvers
[ ( "Query", const $ object [("deity", ref "Deity" <$> getArgument "id")]),
("Deity", deityResolver)
]
api :: ByteString -> IO ByteString
api query = do
schema <- LBS.readFile "./schema.gql" >>= resultOr (fail . show) pure . parseSchema
runApp (mkApp schema resolver) query