Maison  >  Article  >  springframework.web.client Si RestClient gère @requestParam

springframework.web.client Si RestClient gère @requestParam

WBOY
WBOYavant
2024-02-10 17:15:07840parcourir

L'éditeur PHP Banana répondra à une question sur Spring Framework : RestClient gère-t-il @RequestParam ? Dans Spring Framework, lorsque vous utilisez RestTemplate pour effectuer une requête HTTP, l'annotation @RequestParam est utilisée pour obtenir les paramètres de l'URL de la requête. RestClient peut-il donc gérer correctement l'annotation @RequestParam ? Ensuite, nous explorerons ce problème en détail pour vous aider à mieux comprendre et utiliser RestClient dans Spring Framework.

Contenu de la question

J'ai essayé ceci :

@getmapping("/db/video/getall")
public responseentity<list<videodto>> getallvideo(@requestparam string owneremail) {        
        return ....;
    }
import org.springframework.web.client.restclient;

restclient restclient = restclient.create("http://localhost:8095");

list<videodto> result = restclient.get()
    .uri("/db/video/getall")
    .accept(mediatype.application_json)
    .retrieve()
    .body(new parameterizedtypereference<list<videodto>>() {});
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot</artifactId>
    <version>3.2.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>6.1.2</version>
  </dependency>

Mais je ne trouve pas d'exemple de code montrant comment restclient peut transmettre l'e-mail du propriétaire en tant que @requestparam.

J'ai trouvé un exemple de code @pathvariable.

Alors, est-ce que restclient gère @requestparam ?

Solution de contournement

Pour les requêtes get, vous pouvez ajouter des paramètres de requête dans l'URL. Spring's uricomponentsbuilder simplifie le fonctionnement de l'uri.

restclient.get()
    .uri(uricomponentsbuilder.frompath("/db/video/getall")
            .queryparam("owneremail", "email").touristring())
    // ...

Pour les demandes de publication, le corps peut être réglé sur multivaluemap. Le type de contenu peut être déduit de son contenu.

var parts = new LinkedMultiValueMap<String, Object>();
parts.add("ownerEmail", "emailValue");
restClient.post().uri("/db/video/getall").body(parts).retrieve().body(...);

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer