2014-06-06 8 views
8

Also möchte ich die Metadaten eines Youtube-Videos abrufen (sagen wir einmal: https://www.youtube.com/watch?v=qlTA3rnpgzU).Deklarieren eines Retrofit-REST-Endpunkts mit konstantem Abfragewert

Ich werde es kodieren und es in einer anderen URL wickelt etwa so: http://www.youtube.com/oembed?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DqlTA3rnpgzU&format=json

Meine Interface-Definition wie folgt aussehen:

public interface YoutubeApi { 
    @GET ("oembed") 
    YoutubeMetaData metaData (@Query (QUERY_VIDEO_URL) final String url, 
           @Query(QUERY_FORMAT) final String alwaysJson); 
} 

Das ist alles schön und gut, aber ich don‘ Ich möchte hier immer ein anderes Format als JSON angeben (format = json ist ein fester Teil dieser URL).

Gibt es eine Möglichkeit, dies in meiner Interface-Deklaration angeben und reduzieren meine Schnittstelle zu:

public interface YoutubeApi { 
    @GET ("oembed") 
    @Magic ("format=json") 
    YoutubeMetaData metaData (@Query (QUERY_VIDEO_URL) final String url); 
} 

Dank.

Antwort

27

es einfach wieder gutmachen in der relativen URL:

public interface YoutubeApi { 
    @GET("oembed?format=json") 
    YoutubeMetaData metaData(@Query(QUERY_VIDEO_URL) String url); 
} 
+0

In Retrofit 1 können wir @QueryParam Anmerkung @ abrufen ("Endpunkt") @QueryParam (name = "constantVariable", Wert = "constantValue") void normalGet (@Named ("page") int Seite, Callback Rückruf); Referenz: JakeWhartons Kommentar https://github.com/square/retrofit/issues/103#issuecomment-10738504 –

+0

@ nizam.sp Dies ist noch einfacher. – Sumit

+0

Es ist jetzt tatsächlich? –

Verwandte Themen