mirror of
https://github.com/actix/examples
synced 2024-11-30 17:14:35 +01:00
75 lines
1.1 KiB
Markdown
75 lines
1.1 KiB
Markdown
# Juniper
|
|
|
|
[Juniper](https://github.com/graphql-rust/juniper) integration for Actix web.
|
|
If you want more advanced example, see also the [juniper-advanced example].
|
|
|
|
[juniper-advanced example]: https://github.com/actix/examples/tree/master/juniper-advanced
|
|
|
|
## Usage
|
|
|
|
### server
|
|
|
|
```bash
|
|
cd examples/juniper
|
|
cargo run (or ``cargo watch -x run``)
|
|
# Started http server: 127.0.0.1:8080
|
|
```
|
|
|
|
### web client
|
|
|
|
[http://127.0.0.1:8080/graphiql](http://127.0.0.1:8080/graphiql)
|
|
|
|
_Query example:_
|
|
```graphql
|
|
{
|
|
human(id: "1234") {
|
|
name
|
|
appearsIn
|
|
homePlanet
|
|
}
|
|
}
|
|
```
|
|
_Result:_
|
|
```json
|
|
{
|
|
"data": {
|
|
"human": {
|
|
"name": "Luke",
|
|
"appearsIn": [
|
|
"NEW_HOPE"
|
|
],
|
|
"homePlanet": "Mars"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
_Mutation example:_
|
|
|
|
```graphql
|
|
mutation {
|
|
createHuman(newHuman: {name: "Fresh Kid Ice", appearsIn: EMPIRE, homePlanet: "earth"}) {
|
|
id
|
|
name
|
|
appearsIn
|
|
homePlanet
|
|
}
|
|
}
|
|
```
|
|
|
|
_Result:_
|
|
```json
|
|
{
|
|
"data": {
|
|
"createHuman": {
|
|
"id": "1234",
|
|
"name": "Fresh Kid Ice",
|
|
"appearsIn": [
|
|
"EMPIRE"
|
|
],
|
|
"homePlanet": "earth"
|
|
}
|
|
}
|
|
}
|
|
```
|