2017-09-06 2 views
0

Wenn man durch die Lernkurve und kam in diesem Szenario:Feign Rest Client deaktivieren dekodieren auf bestimmte Schnittstelle Methoden

Da 90% der Anrufe JSON ist, einen Gson Decoder hinzugefügt, wenn die Client-Aufbau. Es gibt jedoch einige Methodenaufrufe in der Schnittstelle, die eine unverarbeitete Rückgabe ohne Decodierung unterstützen sollten.

@RequestLine("GET /rest/myrawmethod") 
String getRawMethod(); 

Zur Zeit seit Gson als Decoder hinzugefügt, sondern die rohe Zeichenfolge zurückzugeben es versucht, sie zu entschlüsseln (es wie JSON Inhalt sieht, aber ich will Decodierung umgehen). Ich kann nicht scheinen, eine einfache Weise zu finden, um für spezifische Schnittstellenmethoden zu sperren, wenn Sie nicht den GSON-Decoder als die Ausnahme verwenden.

Danke!

Antwort

0

einige Verweise auf verschiedene Ansätze gesehen, scheint dies der beste Weg zu diesem Zeitpunkt:

@RequestLine("GET /rest/myrawmethod") 
feign.Response getRawMethod(); 

Dann, wenn Sie die Antwort zu analysieren gehen, verwenden Sie so etwas wie:

feign.codec.Decoder dc = new Decoder.Default(); 
String strresponse = dc.decode(myfeignresponse, String.class); //wrapped with exception handling 

Guter Weg um in Szenarien zu prototypieren, in denen Sie nichts um die REST-Nutzlast haben, nur die Methode aufruft ... oder etwas Exotischeres tun möchte (wie die feign.Response-Streaming-Methoden verwenden).

Verwandte Themen