7 votes

Mapper une entité java à un objet GraphQL

J'ai des difficultés à mettre en œuvre GraphQL dans un projet java dans le cadre de sa mise à jour. J'essaie de connecter une entité (qui utilise l'ORM Hibernate pour se connecter à différentes bases de données) à un GraphQLObjectType. Avez-vous des suggestions sur la manière d'y parvenir ? Puis-je omettre les configurations de la base de données GraphQL si c'est le cas ?

7voto

kaqqao Points 872

Il y a plusieurs options ici.

  • Il est probablement préférable de ne pas mettre en correspondance une entité directement. Les entités sont des représentations directes de la base de données et, en tant que telles, ne devraient probablement pas être exposées directement, mais plutôt enveloppées dans des DTO (permettant peut-être la pagination, l'aplatissement des relations, ou tout ce qui est approprié).
  • Si vous avez simplement besoin de faire correspondre la classe (entité ou non) à un fichier de type GraphQLObjectType , graphql-java-annotations est la voie la plus simple (et la plus limitée)
  • Si vous souhaitez exposer l'ensemble du graphe d'entités via GraphQL, graphql-jpa pourrait être votre meilleure option (comme Sriram suggère ), car il est destiné à faire exactement cela, tout en ajoutant la pagination, l'agrégation et le tri.
  • Si vous voulez exposer automatiquement non seulement une classe d'entité/DTO, mais aussi les opérations sur celle-ci (par exemple, une classe de service arbitraire), regardez à graphql-spqr (Je suis l'auteur de ce projet)

1voto

Sriram Points 897

Si vous avez déjà défini vos entités en utilisant JPA/Hibernate, essayez ceci :

https://github.com/jcrygier/graphql-jpa

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X