zoukankan      html  css  js  c++  java
  • 系统接口开发总结

    最近一段时间的工作,很多都是和各系统间串联有关的,其间有两个问题很值关注,如何调用其它系统的接口和如何设计供其它系统调用的接口。

    如何调用其它系统的接口?

    因为是其它系统的接口,直接调用就行了,没有什么啊,其实不然,下面是我总结的一些经验,还是很有用的。

    1.不要程序各个地方直接使用其它的系统的接口,最好是写一个类来封装其它系统的接口,如果其它系统的接口很多,可以专门建一个项目来管理类,这样当接口发生变化时(如接口名,接口方式),只需要替换该项目的DLL就可以了,而程序的其它地方都可以不用改,切忌在程序的各个地方直接调用其它系统的接口

    2.对于调用会产生数据交易的其它系统接口,一定要写Log,这对将来数据出错时,查找问题的根源很必要,特别是对方系统的接口没有写log时,一旦出现数据问题,往往会不知从何查起,是我们给的数据有问题,还是对方系统处理我们给的数据有问题?在最近的一个项目中,因为我们产生数据的逻辑很复杂,而对方接口收到我们产生的数据后,也会做一个很复杂数据交易动作,在系统上线初期,出现了很多莫名其秒的数据,而我们正是通过在调用对方接口时的写log数据,很快查出一些是我们生成的数据有问题,一些是对方处理数据有问题

    如何设计接口?

    1.一般来说,公布给其它的系统用接口,都是稳定的,较少变动的,所以做足需求,能考虑到多种因素和未来可能发生的因素是前提,这样能尽可能减少接口的变动

    2.接口的使用的类型变量尽量通用,特别是对使用此接口的用户一无所知情况下,对方可能是JAVA,也可能是VB6,也可能是C#,不要使用某种编程语言的特定类型,我认为比较好的是,参数和返回值都使用string类型,这样基本上的编程语言都能支持,然后参数和返回都使用XML来定义。

    公布接口的时候一同公布接口定义文档,最好加上XDL文档。

     

    3.对接口接收过来的数据,最好进行数据效验,因为你不能保证其它系统会传给你完全符合标准的数据。

    4.对数据校验不通过的和执行失败的,最好能有清淅明了的提示返回给调用方

    5.对于产生交易数据的接口,最好写log,记录调用方传过来的数据,方便将来查数,不能指望所有的调用方都会写log

  • 相关阅读:
    [AWS] Export and Import Data from DynamoDB Table 从 DynamoDB 数据库中导入和导出数据
    [LeetCode] 944. Delete Columns to Make Sorted 删除列使其有序
    [LeetCode] 943. Find the Shortest Superstring 找到最短的超级字符串
    [LeetCode] 942. DI String Match 增减DI字符串匹配
    [LeetCode] 941. Valid Mountain Array 验证山形数组
    [LeetCode] 940. Distinct Subsequences II 不同的子序列之二
    [LeetCode] 939. Minimum Area Rectangle 面积最小的矩形
    [LeetCode] 938. Range Sum of BST 二叉搜索树的区间和
    [LeetCode] 937. Reorder Data in Log Files 日志文件的重新排序
    [LeetCode] 936. Stamping The Sequence 戳印序列
  • 原文地址:https://www.cnblogs.com/berlin/p/1747200.html
Copyright © 2011-2022 走看看