请求中的改造和常量参数

retrofit and constant parameters in requests

在许多 REST API 中,需要在请求中设置参数 "key"。 IE。 Google 的 YouTube API。 我知道在请求中有使用“@Query”的标准方法,但您应该在每个函数中添加这个“@Query”。 有什么方法可以覆盖方法或 class 添加类似 "setEndpoint" 的东西但对于参数?

如果参数始终设置为相同的值,您可以使用 RequestInterceptor:

RestAdapter restAdapter = new RestAdapter.Builder()
        .setEndpoint(API_END_POINT)
        .setRequestInterceptor(new RequestInterceptor() {
            @Override
            public void intercept(RequestFacade request) {
                request.addQueryParam("api_eky", API_KEY);
            }
        })
        .build();

但是,如果只为某些请求设置参数,我更愿意将它们保留在服务接口的方法签名中,并将它们定义在单例中 API 客户端 class as class 成员变量并将参数值传递给需要它的 RestAdapter 方法。