Table des matières
Contenu de la question
Solution de contournement
Maison Java Modifier RequestBody dans la passerelle Spring

Modifier RequestBody dans la passerelle Spring

Feb 09, 2024 pm 07:15 PM
cadre de printemps

L'éditeur PHP Apple vous présente comment modifier le RequestBody dans Spring Gateway. Spring Gateway est une passerelle API basée sur le framework Spring, utilisée pour traiter et transmettre les requêtes HTTP. Dans Spring Gateway, RequestBody est utilisé pour recevoir les données du corps de la demande envoyées par le client. Si vous devez modifier le RequestBody, vous pouvez le faire via un filtre ou un intercepteur personnalisé. Tout d'abord, vous devez créer un filtre ou un intercepteur personnalisé, puis obtenir les données du corps de la requête dans le filtre ou l'intercepteur et les modifier. Enfin, les données modifiées sont renvoyées dans le corps de la demande pour un traitement ultérieur. De cette façon, le RequestBody peut être modifié dans Spring Gateway.

Contenu de la question

Je souhaite modifier le corps de la requête avant de l'acheminer vers l'uri donné. Basé sur la documentation que j'utilise

org.springframework.cloud.gateway.filter.factory.rewrite.modifyrequestbodygatewayfilterfactory Modifiez le texte. Lors du démarrage de mon serveur, le serveur ne démarre pas avec l'erreur suivante Cause : L'élément [spring.cloud.gateway.routes[0].filters[0].modifyrequestbody.class] n'est pas lié. nn opération : nn mettre à jour la configuration de l'application n","context":"valeur par défaut"}

Vous trouverez ci-dessous des exemples de filtres et de fonctions de réécriture

65bee659f312a

Ce qui suit est la fonction réécrite

65bee659f313a

Ce qui suit est yaml

routes:
        - id: order-route-1
          uri: http://localhost:8999/
          predicates:
            - Path=/some/path1
            - Method=POST
          filters:
            - ModifyRequestBody:
                class: com.xyz.filters.SomeFilter
                value: application/json, application/xml
                enabled: true
Copier après la connexion

Solution de contournement

Il y a quelques problèmes avec votre code :

  1. Pas besoin somefilter 类,只需直接从路由配置中使用 modifyrequestbody 即可。如果你确实需要它来实现 modifyrequestbody Ce qui ne peut pas être fait, il faut en faire un bean en ajoutant @component.
  2. Votre syntaxe de configuration yaml est incorrecte. Veuillez vous référer à la version révisée ci-dessous :
      routes:
        - id: order-route-1
          uri: http://localhost:8999/
          predicates:
            - path=/some/path1
            - method=post
          filters:
            - name: modifyrequestbody
              args:
                inclass: com.xyz.filters.oldtype
                outclass: com.xyz.filters.newtype
                rewritefunction: com.xyz.filters.myrewritefunction
                contenttype: application/json
Copier après la connexion
  • inclass : Nom de classe complet représentant la structure du corps de la demande d'origine.

  • outclass : représente le nom de classe complet de la structure du corps de la requête modifiée.

  • rewritefunction : fait référence au nom de classe complet qui implémente l'interface de fonction de réécriture, qui est utilisée pour convertir le corps de la requête du type original en nouveau type.

  • contenttype (facultatif) : Précisez ce paramètre lorsque vous souhaitez modifier le type de contenu demandé.

Supposons que vous souhaitiez convertir oldtype en newtype, voici l'implémentation de oldtype 转换为 newtype,下面是 rewritefunction :

public class MyRewriteFunction implements RewriteFunction<OldType, NewType> {

    @Override
    public Publisher<NewType> apply(ServerWebExchange exchange, OldType originalRequest) {
     
        NewType modifiedRequest = modifyRequest(originalRequest);
        return Mono.just(modifiedRequest);
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Apr 28, 2024 am 11:46 AM

En tant que leader du secteur, Spring+AI fournit des solutions de pointe pour divers secteurs grâce à son API puissante et flexible et ses fonctions avancées. Dans cette rubrique, nous examinerons les exemples d'application de Spring+AI dans divers domaines. Chaque cas montrera comment Spring+AI répond à des besoins spécifiques, atteint ses objectifs et étend ces LEÇONS APPRISES à une gamme plus large d'applications. J'espère que ce sujet pourra vous inciter à comprendre et à utiliser plus profondément les possibilités infinies de Spring+AI. Le framework Spring a une histoire de plus de 20 ans dans le domaine du développement logiciel, et cela fait 10 ans que la version Spring Boot 1.0 est sortie. Maintenant, personne ne peut contester ce printemps

Modifier RequestBody dans la passerelle Spring Modifier RequestBody dans la passerelle Spring Feb 09, 2024 pm 07:15 PM

Je souhaite modifier le corps de la requête avant de l'acheminer vers l'URI donné. Modifiez le corps en fonction de la documentation que j'utilise org.springframework.cloud.gateway.filter.factory.rewrite.modifyrequestbodygatewayfilterfactory. Lors du démarrage de mon serveur, le serveur ne démarre pas avec la raison d'erreur suivante : L'élément [spring.cloud.gateway.routes[0].filters[0].modifyrequestbody.class] n'est pas lié. \n\nOpération :\

JAX-RS contre Spring MVC : une bataille entre les géants RESTful JAX-RS contre Spring MVC : une bataille entre les géants RESTful Feb 29, 2024 pm 05:16 PM

Introduction Les API RESTful font désormais partie intégrante des applications WEB modernes. Ils fournissent une approche standardisée pour créer et utiliser des services Web, améliorant ainsi la portabilité, l'évolutivité et la facilité d'utilisation. Dans l'écosystème Java, JAX-RS et springmvc sont les deux frameworks les plus populaires pour créer des API RESTful. Cet article examinera en profondeur les deux frameworks, en comparant leurs fonctionnalités, avantages et inconvénients pour vous aider à prendre une décision éclairée. JAX-RS : JAX-RSAPI JAX-RS (JavaAPI pour RESTful Web Services) est un standard JAX-RSAPI développé par JavaEE pour le développement de REST.

Compréhension approfondie de l'architecture et des principes de fonctionnement du framework Spring Compréhension approfondie de l'architecture et des principes de fonctionnement du framework Spring Jan 24, 2024 am 09:41 AM

Une analyse approfondie de l'architecture et des principes de fonctionnement du framework Spring Introduction : Spring est l'un des frameworks open source les plus populaires de l'écosystème Java. Il fournit non seulement un ensemble puissant de fonctions de gestion de conteneurs et d'injection de dépendances, mais fournit également. de nombreuses autres fonctions, telles que la gestion des transactions, l'AOP, l'accès aux données, etc. Cet article fournira une analyse approfondie de l'architecture et des principes de fonctionnement du framework Spring, et expliquera les concepts associés à travers des exemples de code spécifiques. 1. Concepts de base du framework Spring 1.1IoC (Inversion of Control) Core of Spring

Le secret de l'intégration Java JNDI et Spring : révéler la coopération transparente de Java JNDI et Spring Framework Le secret de l'intégration Java JNDI et Spring : révéler la coopération transparente de Java JNDI et Spring Framework Feb 25, 2024 pm 01:10 PM

Avantages de l'intégration de JavaJNDI avec Spring L'intégration de JavaJNDI avec le framework Spring présente de nombreux avantages, notamment : Simplification de l'utilisation de JNDI : Spring fournit une couche d'abstraction qui simplifie l'utilisation de JNDI sans écrire de code JNDI complexe. Gestion centralisée des ressources JNDI : Spring peut gérer de manière centralisée les ressources JNDI pour faciliter la recherche et la gestion. Prise en charge de plusieurs implémentations JNDI : Spring prend en charge plusieurs implémentations JNDI, notamment JNDI, JNP, RMI, etc. Intégrez de manière transparente le framework Spring : Spring est très étroitement intégré à JNDI et s'intègre de manière transparente au framework Spring. Comment intégrer JavaJNDI au framework Spring pour intégrer Ja

Optimisation de la journalisation du programme : partage de conseils sur la définition des niveaux de journalisation log4j Optimisation de la journalisation du programme : partage de conseils sur la définition des niveaux de journalisation log4j Feb 20, 2024 pm 02:27 PM

Optimisation de la journalisation du programme : Conseils pour définir les niveaux de journalisation log4j Résumé : La journalisation du programme joue un rôle clé dans le dépannage, le réglage des performances et la surveillance du système. Cet article partagera des conseils sur la configuration des niveaux de journalisation log4j, notamment sur la manière de définir différents niveaux de journaux et sur la manière d'illustrer le processus de configuration à l'aide d'exemples de code. Introduction : Dans le développement de logiciels, la journalisation est une tâche très importante. En enregistrant les informations clés pendant le processus d'exécution du programme, il peut aider les développeurs à découvrir la cause du problème et à effectuer l'optimisation des performances et la surveillance du système.

Explication détaillée des méthodes de connexion à la base de données Oracle Explication détaillée des méthodes de connexion à la base de données Oracle Mar 08, 2024 am 08:45 AM

Explication détaillée des méthodes de connexion à la base de données Oracle Dans le développement d'applications, la connexion à la base de données est un lien très important qui assure l'interaction des données entre l'application et la base de données. La base de données Oracle est un système de gestion de base de données relationnelle doté de fonctions puissantes et de performances stables. Dans le développement réel, nous devons maîtriser différentes méthodes de connexion pour interagir avec la base de données Oracle. Cet article présentera en détail plusieurs méthodes de connexion courantes à la base de données Oracle et fournira des exemples de code correspondants pour aider les lecteurs à mieux comprendre et appliquer.

Application du mécanisme de réflexion Java dans le framework Spring ? Application du mécanisme de réflexion Java dans le framework Spring ? Apr 15, 2024 pm 02:03 PM

Le mécanisme de réflexion Java est largement utilisé dans le framework Spring pour les aspects suivants : Injection de dépendances : instanciation de beans et injection de dépendances par réflexion. Conversion de type : convertissez les paramètres de requête en types de paramètres de méthode. Intégration du framework de persistance : mappage des classes d'entités et des tables de base de données. Prise en charge d'AspectJ : interception des appels de méthode et amélioration du comportement du code. Proxy dynamique : créez des objets proxy pour améliorer le comportement de l'objet d'origine.