sdk开发时,对外暴露的接口

思考,用同步还是异步?

eg.登陆接口

1.定义接口LoginCallBack,两个函数 请求成功和失败

public interface LoginCallBack{
    public void OnSuccess(SDKUser user);    //登陆成功的回调,我们的需求是给调用者一个封装好的SDKUser类,一些用户信息的get/set 略
    public void OnFailed(String msg);       //传给调用者错误信息
}

2. 对外暴露的SDK主类中,进行处理具体业务逻辑

public class SDK{
public void login(String username,String password,LoginCallBack callback) { //这里一般都要开线程,或在异步任务里
    try{
        //执行网咯请求,异步任务里可以用同步请求来解耦
    if(网络请求成功){
        // 解析json为bean
        ballback.OnSuccess(bean);
     }else {//根据失败信息,调用接口失败方法
        String str="登陆失败!";
       ballback.OnFailed(str);
       }
      }catch(Exception e){
          String str="登陆失败!"; //
       ballback.OnFailed(str);  }
  });
}

3.使用者进行调用

SDK.login("admin","123456",new LoginCallBack(){//参数为账号密码
         @Override
        public void OnSuccess(SDKUser user){
             //请求成功后,这里调用者就可以拿到login方法里json解析后的bean
          }

            @Override
        public void OnFailed(String msg){
             //请求失败后,这里调用者可以拿到我们返回给他的提示信息
          }
});

由于接口既需要返回我们定义的数据通常为json等,有异常时又需要返回异常信息 所以接口通常都写成异步处理,给调用者回调的方式

时间: 2024-11-29 00:31:22

sdk开发时,对外暴露的接口的相关文章

sdk开发时,对外暴露的接口封装

思考,用同步还是异步? eg.登陆接口 1.定义接口LoginCallBack,两个函数 请求成功和失败 public interface LoginCallBack{ public void OnSuccess(SDKUser user); //登陆成功的回调,我们的需求是给调用者一个封装好的SDKUser类,一些用户信息的get/set 略 public void OnFailed(String msg); //传给调用者错误信息 } 2. 对外暴露的SDK主类中,进行处理具体业务逻辑 pu

Java之多线程开发时多条件Condition接口的使用

转:http://blog.csdn.net/a352193394/article/details/39454157 我们在多线程开发中,可能会出现这种情况.就是一个线程需要另外一个线程满足某某条件才能继续运行,或者需 要其他线程满足好几个条件才能运行,对于这样的多条件的多线程并发,我们如何控制好各个线程之间的关系,使他们 能很好的处理冲突不至于相互出现问题呢,下面我们来介绍一下Java提供的Condition这个接口,这个接口很好的实现了 这种需求. 对于这个问题最经典的例子就是生产者消费者模

借助Gradle Plugin解决模块化开发中模块如何对外暴露接口

直奔主题,在模块化开发中,模块间的数据交流大多数同学会采用以接口作为通信协议的方式.需要面对的问题有以下几点: 接口由谁来维护?这个问题简单,由提供服务的模块来维护.接口怎么暴露?打成jar包,发布到maven.接口在哪里维护?现在可以参考的方案有三种:一. 所有相关模块的接口统一在一个模块中维护:二. 各个模块的接口分别在自建一个新的模块中维护,通过命名规则一一对应:三. 像微信的.api方案,使用特殊的规则混杂在各自的模块中. 如果接着第一个问题,方案一好像就有点难确定接口对应的来源模块.方

Android开发配置,消除SDK更新时的“https://dl-ssl.google.com refused”异常

消除SDK更新时的“https://dl-ssl.google.com refused”错误 消除SDK更新时,有可能会出现这样的错误:Download interrupted: hostname in certificate didn't match: <dl-ssl.google.com> != <www.google.com>Download interrupted: Connection to https://dl-ssl.google.com refusedDone. N

php接口开发时,数据解析失败问题,字符转义,编码问题

php接口开发时,数据解析失败问题,字符转义,编码问题 情景: A平台--->向接口请求数据---->接口向B平台请求数据---->B平台返回数据给接口---->接口返回数据给A平台. 数据经过多遍传递,出现编码.特殊字符转义的的问题. 遇到问题: (1)第一个问题:A发过来的数据,参数值是json字符串,接收到之后无法解析,查看数据后发现json数据中的双引号被转成了" 也就是预定义的字符被转成了HTML实体,需要使用 htmlspecialchars_decode()

esp8266 Ubuntu SDK 开发环境搭建

最近在弄这个WiFi模块,发现网上SDK开发方面的资料很少,发现了一套视频教程,不过主讲人的讲课方式实在受不了.对基于SDK开发感兴趣的同学可以通过本帖在Ubuntu系统上通过Eclipes搭建开发环境. 过程可以分为两步: 1.下载.编译SDK 2.配置Eclipes 一.下载.编译SDK esp8266的sdk有两种,分别是ESP8266_RTOS_SDK和ESP8266_NONOS_SDK,这两者的区别在于RTOS_SDK基于NONOS_SDK并有一个叫做RTOS的操作系统,而NONOS_

聊一下移动开发时MVC中的控制器

控制器,是MVC中的一环,也是手机软件开发中最需要注意的地方,对它的认识不清晰会导致业务层代码的结构混乱,耦合性高.经常见一些进行了几年的老项目代码,如果不是经常的迭代重构,维护起来会非常痛苦.今天重点说一下怎么化解这个问题. 其实,每个平台都对Controller有很清晰的描述和定义,只不过我们在使用中容易自己乱了阵脚,而最终导致自己难受罢了.像Android中的Activity.Fragment,IOS中的ViewController,都定义了明确的生命周期自管理方法,供开发者使用.我们只需

iOS音视频SDK开发技术解决方案

随着iOS的强势面世,伴随着其出色的应用,一大堆开发人员在捣鼓IOS平台的开发,而基于iOS的音视频二次开发应用也为更多的程序员猛攻猛打.相信大家也使用过QQ的语音视频对话功能,但是不知道大家有没有试过自己来开发一个基于IOS平台的音视频即时通讯的应用,这个应用必须能够做到跨平台 ·                      支持iOS平台设备上的音频即时通讯应用开发 ·                      提供Objective-C语言API接口,开放示例源代码 ·           

HyperLeger Fabric SDK开发(四)——channel

HyperLeger Fabric SDK开发(四)--channel 一.channel简介 1.channel?简介 pkg/client/channel支持访问Fabric网络上的通道.channel客户端实例提供与指定通道上的Peer节点进行交互的处理函数.channel客户端可以在指定通道上查询链码,执行链码以及注册或注销链码事件.如果应用程序需要与Fabric网络的多条通道进行交互,需要为每条通道创建一个单独的通道客户端实例.官方文档:https://godoc.org/github