Retrofit 2 如何处理 API 服务接口中传递给 Retrofit.create() 的函数注释?

问题描述 投票:0回答:1
我是 Java 编程新手,并尝试了解注释在大型库中的工作原理。

有人可以向我展示代码片段,其中 Retrofit 实际上正在处理来自 API 服务接口的函数注释(我将其作为参数传递给 Retrofit.create 方法)并据此更改其行为吗?我的意思是:@GET、@POST 等

我创建了具有下一个功能的接口 Giphy Api Service:

@GET("gifs/search") fun getSearchedGifs( @Query("q") searchTerm: String, @Query("limit") limit: Int = 50, @Query("offset") offset: Int = 0, @Query("rating") rating: String = "g", @Query("lang") lang: String = "en", @Query("bundle") bundle: String = "messaging_non_clips", @Query("api_key") apiKey: String = "my api key" ): Call<DataResult>
这个函数有 @GET("gifs/search") 代表 HTTP GET 请求。

然后我在接下来的代码中使用这个接口创建改造对象的实例:

val retroService = retrofit.create(GiphyApiService::class.java)
我检查了retrofit.create()方法和所有文件,但没有找到我的问题的答案

java android kotlin retrofit retrofit2
1个回答
0
投票
Retrofit2 使用

动态代理来实现接口而不是代码生成。 它通过反射解析您的方法,生成方法的 SeriveMethod

 并将它们缓存到 
serviceMethodCache
 中。

当您调用接口的方法时,将调用创建的

ServiceMethod

© www.soinside.com 2019 - 2024. All rights reserved.