Heim  >  Artikel  >  springframework.web.client Ob RestClient @requestParam verarbeitet

springframework.web.client Ob RestClient @requestParam verarbeitet

WBOY
WBOYnach vorne
2024-02-10 17:15:07887Durchsuche

PHP-Editor Banana beantwortet eine Frage zum Spring Framework: Verarbeitet RestClient @RequestParam? Wenn Sie in Spring Framework RestTemplate verwenden, um eine HTTP-Anfrage zu stellen, wird die Annotation @RequestParam verwendet, um Parameter aus der Anfrage-URL abzurufen. Kann RestClient also die @RequestParam-Annotation korrekt verarbeiten? Als Nächstes werden wir dieses Problem im Detail untersuchen, um Ihnen zu helfen, RestClient im Spring Framework besser zu verstehen und zu verwenden.

Frageninhalt

Ich habe Folgendes versucht:

@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>

Aber ich kann kein Codebeispiel finden, das zeigt, wie Restclient Owneremail als @requestparam übergeben kann.

Ich habe ein @pathvariable-Codebeispiel gefunden.

Verarbeitet restclient also @requestparam?

Problemumgehung

Für Get-Anfragen können Sie Abfrageparameter in der URL hinzufügen. Spring's uricomponentsbuilder vereinfacht die Bedienung von uri.

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

Für Post-Anfragen kann der Text auf multivaluemap eingestellt werden. Der Inhaltstyp kann aus seinem Inhalt abgeleitet werden.

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

Das obige ist der detaillierte Inhalt vonspringframework.web.client Ob RestClient @requestParam verarbeitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen