$ dotnet build
$ dotnet run --project ./StarWarsApi
Åpen GraphQL playground i nettleser:
https://localhost:5001/ui/playground
En grafisk oversikt av skjema finner du på https://localhost:5001/ui/voyager
Vi skal spørre mot serveren med GrahQL.
- Spør om alle filmer med feltene tittel og producer
- Spør om alle filmer med feltene tittel, openingcrawl og releaseDate
- Spør om alle filmer med feltene tittel og vehicles, og vehicles skal minst ha med feltene model og manufacturer
- Spør om alle reviews
- Spør om film med id 3
- Gi navn til query fra oppgave 5
- Bytt verdien 3 med en variabel
Vi skal fylle inn det som mangler i backend for å få den til å virke som den gjorde i Del 1.
Før du begynner må du bytte til greinen "del-2" i git.
- Endre description på title til "The super title of the film" i schema.
# For å sjekke trykk på schema i playground of se at det har endret seg
- Rette navnet på feltet "Produzer" til "Producer" i schema
# For å sjekke kan du kjøre denne spørringen
{
films {
title
producer
}
}
- Legg til feltet releaseDate på film-typen.
# For å sjekke kan du kjøre denne spørringen
{
films {
title
releaseDate
}
}
- Finn feltet reviews på film og implementer en resolver. Det er lov å bruke servicene som allerede er laget.
FOR JAVA: Finn filmResolvers og fiks getReviews
# For å sjekke kan du kjøre denne spørringen
{
films {
title
producer
reviews {
username
diceThrow
}
}
}
- Legg til feltet vehicles på film og implement resolver. Det er lov å bruke servicene som allerede er laget.
FOR JAVA: Legg til feltet vehicles på film i skjema og fiks getVehicles i FilmResolver
# For å sjekke kan du kjøre denne spørringen
{
films {
title
producer
vehicles {
name
manufacturer
}
}
}
- Legge til reviews til schema sånn at det går an å spørre etter alle reviews (uten å bruke films).
# For å sjekke kan du kjøre denne spørringen
{
reviews {
episodeId
username
diceThrow
}
}
- (Ekstra oppgave) Utvid reviews til å ha kommentarer. Her må du endre i services/data også.
# For å sjekke kan du kjøre denne spørringen
{
reviews {
episodeId
username
diceThrow
comment
}
}
# Films with vehicles
{
films {
title
director
vehicles {
name
model
}
}
}
# Specific film
{
film (id: 1) {
title
episodeId
director
}
}
# Named query
query costInCredits {
film(id: 3) {
title
producer
openingCrawl
releaseDate
}
}
# Named query with variable
query costInCredits($id:ID!) {
film(id: $id) {
title
producer
openingCrawl
releaseDate
}
}
--- in query variables window ---
{
"id": 3
}
# Named query with variable and directive
query costInCredits($id:ID!, $includeProducer: Boolean!) {
film(id: $id) {
title
producer @include(if: $includeProducer)
openingCrawl
releaseDate
}
}
--- in query variables window ---
{
"id": 4,
"includeProducer": false
}