我目前正在尝试做一个ApiInterface。我正在尝试通过使用查询来操作API URL。到目前为止我使用的URL是
https://api.themoviedb.org/3/search/movie?api_key={apiKey}&language=en-US&query={query}
上面的网址我试图改变“查询”所以我创建了这个接口:
@GET("3/search/movie?api_key=${BuildConfig.MOVIE_TOKEN}&language=en-US&")
fun getMovies(
@Query("query") query: String
): Call<SearchMovieResponse>
它工作得很好,但是如果URL的情况是这样的:
https://api.themoviedb.org/3/movie/{id}?api_key=7fad718afb38c7fe3fbe9da94e0d54e6
我试图操作{id}的地方。接口是这样的吗?
@GET("3/movie/{id}?api_key=${BuildConfig.MOVIE_TOKEN}")
fun getMovieById(
@Query("id") id: String
):Call<SearchDetailMovieResponse>
请帮助我了解如何利用注解来修改API URL
2条答案
按热度按时间ogsagwnx1#
在以下URL的情况下正确使用
@Query
:https://api.themoviedb.org/3/movie/{id}?api_key=7fad718afb38c7fe3fbe9da94e0d54e6
您需要编写这样的接口
有关详细信息,请参阅documentation。
eimct9ow2#
您可以使用@Path注解来实现这一点。
附加信息:
如果你在url的中间有参数,并且想要给予动态值,那么使用@Path注解,因为你在url的中间有id。
e-g https://test-api/3/profile. 3是url中间的参数,在这种情况下我们使用@Path
如果你在url的中间没有参数,而想在url的末尾传递参数,最好使用@Query
例如https://test-api/profile?user_id = 3 user_id是key value参数,在这种情况下我们使用@Query。
答:我是按照我的理解来分享的。