A-Restful API 使用

一、Restful API 使用

XAPP SDK 封装了部分常用的 Restful API,例如用户注册、登陆、找回密码等等。完整的 Restful API 文档在:OPEN-API开发指南

1、使用方式

用户通过如下方式可调用 Restful API:

//获取应用接口API
XLinkRestful.getApplicationApi().*****

用户调用其提供的方法即可,例如:

// 用户登陆
UserAuthApi.UserAuthRequest request = new UserAuthApi.UserAuthRequest();
request.corp_id = mCorpId;
request.email = mEmail;
request.phone = mPhone;
request.password = mPwd;
XLinkRestful.getApplicationApi().authorizeUser(request)...

XAPP SDK 使用 retrofit2 作为HTTP请求库,使用方法请参考官方文档:http://square.github.io/retrofit/

2、自定义 Restful

若 XAPP SDK 自带 Restful API 接口不能满足需求,开发者需自己实现,可通过如下方式:

2.1、使用 client 处理接口

在使用 OkHttpClient 时,如果对Client的自定义要求不高,并且直接使用 XAPP SDK 调用 Restful 接口时,可以通过在 XAPP SDK 中设置setNetworkClientProcessor()在 XAPP SDK 首次创建 Client 时进行自定义处理

XLinkConfig config = XLinkConfig.newBuilder()
        .setNetworkClientProcessor(new NetworkClientProcessor() {
            @Override
            public void processorClient(OkHttpClient.Builder builder) {
                //自定义Client的处理操作,如SSL的配置等
            }
        })
        .build()

2.2、其它方式实现 API 接口

若开发者使用其他方式(非 retrofit2)实现 API 接口,要注意 AccessToken 必须从 XAPP SDK 取出,即当开发者调用需要 accessToken 的接口时,必须使用 XLinkUserManager.getInstance().getAccessToken() 返回的 accessToken ,并且注意不要缓存起来使用

当外部进行了其它的登录操作将导致 XAPP SDK 中维护的 accessToken 过期,此时将会导致 XAPP SDK 的一些功能是不正常或者不可用的,并可能导致 XAPP SDK 通知用户退出事件,同时清除当前缓存的所有数据

注意:accessToken 应该从 XAPP SDK 中随取随用,不要进行缓存,accessToken 的维护工作应该交由 XAPP SDK 进行

2.3、使用OkHttpClient

若以上方法都不适用,也可以从 XLinkRestful 中获取到当前使用的 httpClient 并进行调整,示例代码如下:

//定义新的接口
interface ApiService {
    @Headers({"Content-Type: application/json"})
    @POST("/{user_id}/xxx/xxx/xxx")
    Call<String> postApi(@Query("user_id") String userId, @Body List<Request> request);
 
    class Request {
        public String params;
    }
}
 
//sdk需要初始化操作
XLinkConfig config=...;
XLinkAndroidSDK.init(config);
 
//使用XLinkRestful对象的 httpClient 创建自定义的retrofit
Retrofit retrofit = new Retrofit.Builder()
        //使用XLinkRestful中的基础url
        .baseUrl(XLinkRestful.getBaseRetrofit().baseUrl())
        //使用XLinkRestful中创建的client
        .client(XLinkRestful.getApiHttpClient().newBuilder().build())
        //如果返回数据为空,建议添加到这个转换器,并且请保持在第一个添加的位置
        .addConverterFactory(ScalarsConverterFactory.create())
        .addConverterFactory(GsonConverterFactory.create())
        .build();
//创建ApiService并调用接口
ApiService api=retrofit.create(ApiService.class);
api.postApi(request)
    .enqueue(...);

注意:XLinkRestful 必须在正常初始化成功之后才会创建 client。若未进行初始化时,获取 client 会抛出未初始化的异常。可通过XLinkRestful.isInitialized()判断是否已初始化

没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题