大家好,我是Bodo!上次写下“ TAOBAO”开放式平台界面的设计想法后,许多粉丝提到他们何时发布下一篇文章,所以今天我计划为开放平台SDK的设计写一些想法。同时,我将进行一些实践实践。
在撰写本文之前,我亲自使用了TAOBAO和JINGDONG OPEN平台上的一些SDK进行工作。我还学到了很多设计思想。分为三个模块,这是:
数据传输协议更为通用。首先,我想进行一般设计以支持其他传输方法。如果它支持保持长链接,我就不需要过度设计。必须有大部分适应性编码。将来它可能会保持不变。没有必要!
目前,有许多开源工具,例如,还有更多的方法,可以选择哪种?好方法是自己抽象界面,然后提供默认的实现类,以便您可以保持一定的灵活性。
仅定义一种方法来满足需求(懒惰需求?)。请求大多数开放平台的接口。无需定义所有HTTP功能。一个是干!
接下来,使用HTTP请求:
以上意识到了一个简单的HTTP客户端,基本上满足了需求。
序列化和依赖性是Java实体之间数据的转换。对于灵活的设计,面向接口的编程用于定义用于序列化和设备的接口。
同时,使用简单的实现来使用库:
JackSonserializer
JackSondeserializer
这样的简单序列化和退休工具已经完成,以便基本上可以满足需求,但是一般的开放平台具有参数,其价值可能会等。为了仅集成序列化和反序列化,ISI创建了另一个接口,继承和:
该添加方法用于确定它是否支持指定的数据格式,例如调整数据格式以创建实现类:
Jsonserialionapter
这更灵活。如果老板秘密地说,如果可以支持这一点,那么这个需求非常简单!如果我们使用序列化实现,请首先编写序列化和依赖的序列化器:
jaxbserializer
jaxbdeserializer
XMLSerializationAdapter
以同样的方式,其他数据格式也可以通过自定义定义,因此我不会解释它。
如何使用?使用也很简单。简单编写测试方法测试:
可以在变量的值之间转换上述测试代码,只需更改变量的值即可。
JSON格式输出
XML格式输出
其余工具是编写一个简单的API客户端来启动HTTP请求和处理响应数据。
由于SDK用于其他人,因此尽可能方便地方便。
Abstractrequest
抽象性
DefaultClient一个简单的API客户端
在这一点上,一个简单的开放平台SDK基本上已经成形。为了适应大多数客户的开放环境,应注意以下几点:
有些人注意到我不期望。每个人都留下一条信息,一起学习和交流。