как создавать фрагменты с помощью аннотаций spring-spqr graphql-spqr-spring-boot-starter graphQL

Используя graphql-spqr-spring-boot-starter и graphql-spqr, но не можете создать фрагмент с помощью @GraphQLDirective, не уверен, есть ли способ сделать это.

Моя цель - создать фрагмент через код вроде

@Data
@GraphQLFragment
public class ProfileFields{
 private String name;
 private String emailId;
 private String phoneNo;
}

и используйте этот фрагмент в запросе ниже, может ли кто-нибудь подсказать мне, какие аннотации используются для этого

{
  profile(id: "101"){
    ...ProfileFields
  }
}

1 ответ

GraphQL работает не так. Фрагменты определяются клиентом ad-hoc. Вы не можете определить их заранее на сервере. Определение фрагмента является частью запроса. Вам ничего не нужно (или что вы можете) делать на сервере, чтобы фрагменты работали.

Клиент может отправить такой запрос:

{
  profile(id: "101") {
    ... ProfileFields
  }
}

fragment ProfileFields on Profile {
  name
  registrationDate
}

Что касается @GraphQLDirective, он используется для определения директив схемы (на стороне сервера). Директивы не относятся к фрагментам.

Другие вопросы по тегам