#graphql #graphql-java
#graphql #graphql-java
Вопрос:
Я могу запустить Java-сервер Spring Boot GraphQL (с GraphiQL в качестве пользовательского интерфейса для запуска запроса). Теперь я пытаюсь передать строку запроса, переданную из GraphiQL (фактически запрос в полезной нагрузке, отправленный в конечную точку / graphql), в класс преобразователя запросов. Я пробовал разные варианты, но ничего не помогло.
public class Query implements GraphQLQueryResolver {
...
public Iterable<Book> findAllBooks() {
String query = ** WHAT TO DO?? **
return bookRepository.findAll();
}
}
Ответ №1:
Вы можете определить запрос с параметрами, а затем написать код Java в GraphQLQueryResolver
Например:
Схема
type Query{
findBookByTitle(title:String!):Book!
}
Преобразователь
public Book findBookByTitle(String title){
//you can get the title
}
Комментарии:
1. Я могу запустить приложение, отправить запрос и получить ответ обратно. Здесь я пытаюсь получить фактический запрос внутри метода Query.finaAllBooks(). Например, если мой запрос: { findAllBooks { id isbn title pageCount author { FirstName LastName } } }, то в моем фактическом запросе строки вопроса есть это.
Ответ №2:
В TypeScript я нашел полный запрос через info.operation.selectionSet.loc.source.body
. и info
происходит из https://www.apollographql.com/docs/apollo-server/data/resolvers/#resolver-arguments