2017-05-09 4 views
2

Hier ist meine Schnittstelle.Feign Client löst nicht ab Abfrageparameter

public interface SCIMServiceStub { 

    @RequestLine("GET /Users/{id}") 
    SCIMUser getUser(@Param("id") String id); 

    @RequestLine("GET /Groups?filter=displayName+Eq+{roleName}") 
    SCIMGroup isValidRole(@Param("roleName") String roleName); 

} 

Hier getUser Aufruf funktioniert gut. Aber isValidRole funktioniert nicht richtig, da die Anfrage schließlich so gesendet wird.

/Groups?filter=displayName+Eq+{roleName}" 

Hier ist {roleName} nicht aufgelöst. Was fehlt mir hier? Schätze etwas Hilfe, da ich zu diesem Zeitpunkt keine Ahnung habe.

Bearbeiten: 1 weitere Frage: Gibt es eine Möglichkeit, automatische URL-Codierung von Abfrageparametern zu vermeiden?

Antwort

1

Es scheint, durch einen Fehler verursacht werden, die bereits geöffnet wird - https://github.com/OpenFeign/feign/issues/424

Wie in den Kommentaren, können Sie Ihre eigenen Param.Expander so etwas wie unten als Behelfslösung definieren können.

@RequestLine("GET /Groups?filter={roleName}") 
String isValidRole(@Param(value = "roleName", expander = PrefixExpander.class) String roleName); 

static final class PrefixExpander implements Param.Expander { 
    @Override 
    public String expand(Object value) { 
     return "displayName+Eq+" + value; 
    } 
} 
+0

Großartig, Danke .. – Bee

Verwandte Themen