zoukankan      html  css  js  c++  java
  • 同程旅游网开放平台SDK开发完成

    最近利用业余时间,使用了同程旅游网的开放平台,并对大部分的方法进行了调用,发现有很多不好用的地方,比如

    1.同一个开放平台居然有几个调用地址,景区调用http://tcopenapi.17usoft.com/handlers/scenery/queryhandler.ashx ,酒店调用http://tcopenapi.17usoft.com/handlers/hotel/QueryHandler.ashx

    2.只能返回xml格式,在现在大多数平台可以返回json的情况下,居然只能返回xml,而且还不能直接反序列化为对象。除非自己实现这个反序列化的过程。

    3.错误信息提示不够充分,无处可以查询详细信息。

    4.客户端调用非要传入clientIp,哪怕是127.0.0.1都可以,实在不明白这样做有和意义。

    5. 实体对象不一致,同一个对象,不同接口返回的xml用不同的tag,让你无法使用反射等特性来对给属性赋值。

    ......

    以上总总,总之一句话,不好用。

    本人在使用的过程中,力图抹平这些不一致。开发了一整套针对同程网开放平台的sdk。上图。

     

    上图是sdk的整体结构,

    Domain ->实体对象文件夹

    Facade ->接口调用外观层,里面有两个Facade,里面都是静态方法,后面介绍这两个类的具体用法

    Request ->请求参数的封装,封装后的request,将在发送请求到服务端的时候,自动序列化为同程网开放平台接口所需要的xml。

    Response ->返回数据的封装,封装后的response,将直接是对象的形式,你可以尽情地点,然后选择属性,然后就ok了。

    Util->sdk通用的工具类。

     

    上图是接口外观层的封装,都是静态方法,你只需要实例化request,然后设置参数,然后调用外观层方法,就可以得到所要的结果。

     

    上图示范如何使用。现在使用是不是非常之简单哇!

     

    以上两图是quick watch的图片。已经全部包装成对象的形式,和返回的xml基本一致。

     鉴于很多朋友找我要sdk,特开放源码下载,如有问题请自行修改并测试

    bin:http://files.cnblogs.com/jackhuclan/tcsdk.rar

    sourcecode:http://files.cnblogs.com/jackhuclan/tcsdk_sourcecode.zip

  • 相关阅读:
    AOP的实现原理——动态代理
    反射
    代理模式
    sprig——jar包
    spring事务管理
    [c++基础]3/5原则--拷贝构造函数+拷贝赋值操作符
    [c++面试准备]--vector对象是如何增长的
    c++面试须知
    redhat--1
    kvm配置虚拟机[待整理]
  • 原文地址:https://www.cnblogs.com/Alex80/p/6937872.html
Copyright © 2011-2022 走看看