[JAVA] Lorsque vous souhaitez notifier une erreur quelque part lors de l'utilisation de graphql-spring-boot avec Spring Boot

Je ne pouvais pas l'obtenir avec @ RestControllerAdvice, et je voulais des informations un peu plus détaillées que @ ExceptionHandler.

environnement


val spring_version=2.2.2.RELEASE

implementation("com.graphql-java-kickstart:graphql-spring-boot-starter:6.0.0")
implementation("org.springframework.boot:spring-boot-starter:$spring_version")
implementation("org.springframework.boot:spring-boot-starter-web:$spring_version")

Exemple de code

Il semble bon d'enregistrer Map <String, ExecutionStrategy> dans le bean.

@Configuration
class GraphQLConfig {
    @Bean
    fun executionStrategies(): Map<String, ExecutionStrategy> {
        val customDataFetcherExceptionHandler = CustomDataFetcherExceptionHandler
        return mapOf(
                "queryExecutionStrategy" to AsyncExecutionStrategy(customDataFetcherExceptionHandler),
                "mutationExecutionStrategy" to AsyncSerialExecutionStrategy(customDataFetcherExceptionHandler)
        )
    }

    class CustomDataFetcherExceptionHandler: SimpleDataFetcherExceptionHandler() {
        override fun onException(handlerParameters: DataFetcherExceptionHandlerParameters): DataFetcherExceptionHandlerResult {
            //Prévenez-moi gentiment
            //Si vous voulez des informations de niveau inférieur
            // handlerParameters.dataFetchingEnvironment.getContext<GraphQLServletContext>().Il semble que vous puissiez l'obtenir avec httpServletRequest.
            return super.onException(handlerParameters)
        }
    }
}

Je ne suis toujours pas sûr si ʻAsyncExecutionStrategy et ʻAsyncSerialExecutionStrategy sont corrects, mais pour l'instant, vous pouvez passer l'erreur à quelque chose comme slack.

Veuillez commenter s'il existe un meilleur moyen.

Recommended Posts

Lorsque vous souhaitez notifier une erreur quelque part lors de l'utilisation de graphql-spring-boot avec Spring Boot
ProxyFactory est pratique lorsque vous souhaitez tester AOP avec Spring!
Erreur inconnue dans la ligne 1 de pom.xml lors de l'utilisation de Spring Boot dans Eclipse
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
Lorsque vous souhaitez lier InputStream dans JDBI3
Si vous souhaitez séparer le traitement Spring Boot + Thymeleaf
Lorsque vous souhaitez remplacer dynamiquement l'annotation dans Java 8
Personnalisez l'affichage lorsqu'une erreur telle que 404 Not Found se produit dans Spring Boot
Obtenez des informations d'erreur à l'aide de DefaultErrorAttributes et ErrorAttributeOptions dans Spring Boot 2.3
Comment contrôler les transactions dans Spring Boot sans utiliser @Transactional
Précautions lors de l'utilisation de Spring AOP avec les classes de ressources Jersery
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
Je veux contrôler le message d'erreur par défaut de Spring Boot
L'histoire de la transition de Spring Boot 1.5 à 2.1
Erreur de mise en œuvre lors de la mise en œuvre de la validation Spring
Modifications lors de la migration de Spring Boot 1.5 vers Spring Boot 2.0
Modifications lors de la migration de Spring Boot 2.0 vers Spring Boot 2.2
Mon mémorandum que je veux faire ValidationMessages.properties UTF8 dans Spring Boot
Erreur Javaw.exe lors du démarrage de Spring Boot (STS)
Lors de l'introduction de JOOQ dans Spring Boot, une histoire qui a été traitée parce qu'une erreur s'est produite autour de Liquidbase
[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker
Résumé en essayant d'utiliser Solr en Java et en obtenant une erreur (Solr 6.x)
Erreur 407 lors de la tentative d'accès au site HTTPS via un proxy authentifié en Java
Lors de l'utilisation d'une liste en Java, java.awt.List sort et une erreur se produit
Je souhaite envoyer un e-mail en Java.
Une note quand vous voulez Tuple en Java
Lorsque vous souhaitez utiliser la méthode à l'extérieur
Comment ajouter un chemin de classe dans Spring Boot
Introduction à Spring Boot + In-Memory Data Grid
[Swift] Utilisez nonzeroBitCount lorsque vous voulez popcnt dans Swift
Comment se lier avec un fichier de propriétés dans Spring Boot
Appliquer Twitter Bootstrap 4 à Spring Boot 2 à l'aide de Webjars
[Ruby] Lorsque vous souhaitez remplacer plusieurs caractères
[Rails] Que faire lorsque vous souhaitez générer une erreur qui ne peut pas être annulée lorsque des restrictions de clé externe sont appliquées
Je veux que vous racontiez que l'erreur a été résolue lorsque vous avez poignardé le chargeur dans le coin de la tête
Je souhaite établir une connexion lorsqu'une base de données est créée à l'aide de Spring et MyBatis
Jusqu'à ce que vous créiez un projet Spring Boot dans Intellij et que vous le transmettiez à Github
Code à utiliser lorsque vous souhaitez traiter Json en Java avec uniquement des bibliothèques standard
Points à garder à l'esprit lors de l'utilisation de l'instruction if
Un livre d'introduction à lire lors du démarrage de Rails
Étendez Spring Boot DefaultErrorViewResolver pour personnaliser dynamiquement les écrans d'erreur
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
Testez la classe injectée sur le terrain dans le test de démarrage Spring sans utiliser le conteneur Spring
Jusqu'à ce que vous commenciez à développer avec Spring Boot dans eclipse 1
Présentez swagger-ui à l'API REST implémentée dans Spring Boot
Jusqu'à ce que vous commenciez à développer avec Spring Boot dans eclipse 2
[Ruby + Rails] Lorsque vous souhaitez vous inscrire dans la liste de diffusion de Mailchimp avec l'enregistrement de l'utilisateur
Comment écrire dans la classe Model lorsque vous souhaitez enregistrer des données binaires dans DB avec PlayFramework
Je souhaite contrôler la taille de fichier maximale pour le téléchargement de fichiers pour chaque URL dans Spring Boot
Lorsque vous souhaitez implémenter des tests de bibliothèque Java avec Spock en multi-module avec Gradle dans Android Studio 3
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Lorsque vous souhaitez refléter les informations de la branche principale dans la branche actuelle sur laquelle vous travaillez actuellement
Que faire si vous obtenez une erreur indiquant Impossible de trouver un baseurl valide pour le dépôt lorsque vous utilisez le menu fixe yum -y install dans le cours udemy à l'aide de CentOS7
J'ai eu une erreur lors de l'utilisation de nextInt, nextLine et substring.