如何在Quarkus应用程序中读取GraphQL查询结果



我对GraphQL和Quarkus非常陌生。我已经设法用GraphQL运行了一个quarkus应用程序跟随这个链接

我有以下类:
Hero.java

package org.acme;
import java.util.*;
public class Hero {
public String name;
public  String surname;
public Double height;
public Integer mass;
public Boolean darkSide;
public LightSaber lightSaber;
public static  List<Integer> episodeIds = new ArrayList<>();
}

Film.java

package org.acme;
import java.time.LocalDate;
public class Film {
public String title;
public Integer episodeID;
public String director;
public LocalDate releaseDate;
}

我定义查询的主文件:

package org.acme; 
import java.util.List;
import javax.inject.Inject;
import org.eclipse.microprofile.graphql.*; 
import io.vertx.core.http.impl.ServerWebSocketImpl;
@GraphQLApi
public class FilmResources {
@Inject
GalaxyService service;
@Query("allFilms") 
@Description("Get all Films from a galaxy far far away") 
public List<Film> getAllFilms() {
return service.getAllFilms();
}
@Query("allHeroes")
@Description("Get all heroes name")
public List<Hero> getAllHeroes()
{
return service.getAllHeroes(); 
}

@Query("getFilm")
@Description("Get a film by it's id")
public Film getFilm(@Name("filmId") int id)
{
return service.getFilm(id); 
}
// @Query("getFilmHeroes")
// @Description("Get heroes by film specified")
public List<Hero> heroes(@Source Film film) { 
return service.getHeroesByFilm(film);
}
}

我在GraphQL Ui上运行以下查询http://localhost:8080/q/graphql-ui:

query getFilmHeroes {
getFilm(filmId: 1) {
title
director
releaseDate
episodeID
heroes {
name
height
mass
darkSide
lightSaber
}
}
}

我得到以下json:

{
"data": {
"getFilm": {
"title": "The Empire Strikes Back",
"director": "George Lucas",
"releaseDate": "1980-05-21",
"episodeID": 5,
"heroes": [
{
"name": "Luke",
"height": 1.7,
"mass": 73,
"darkSide": false,
"lightSaber": "GREEN"
},
{
"name": "Leia",
"height": 1.5,
"mass": 51,
"darkSide": false,
"lightSaber": null
},
{
"name": "Darth",
"height": 1.9,
"mass": 89,
"darkSide": true,
"lightSaber": "RED"
}
]
}
}
}

我的问题是查询的结果(这个json文件(在哪里?我怎样才能在我的程序中阅读它。请给我参考一些阅读材料或我在程序中阅读此查询所需遵循的步骤。

GraphQL查询和结果如下Quarkus设置看起来像这个

您一直在玩的是GraphQL的服务器端Quarkus扩展。但是Quarkus也有一个客户端扩展:quarkus-smallrye-graphql。它提供了一个可以调用远程(或本地…(GraphQL服务器的库,并允许您以编程方式处理结果。试用指南在https://quarkus.io/guides/smallrye-graphql-client-试试看!

最新更新