API VS EDI

近年来,由于EDI在国内发展势头愈发强劲,大多数企业IT事业部都接触到了EDI,在了解的过程中,经常会有开发人员提出疑问,相对于传统API的方式而言,EDI究竟有什么优势,能够在全球范围内的推广呢?
总的来说,API和EDI各有优劣,API的使用范围更广,功能层面上也比EDI更强,可以实现更精细化的功能,但技术门槛更高,需要专业开发人员才能实现,这在无形中也增加了成本 。EDI则可以看做是API的某种具体实现,为了通用可能损失了一些细节,但其标准化的程度更高,且技术门槛低,只需要普通IT和业务人员即可实现,成本更低 。
为了大家能够清晰直观的进行对比,特意做了表格:
我们从以下几个点一起来看看:
数据结构
API方式中,一般是API的设计者根据企业自身的业务逻辑设计出的数据结构,在设计数据结构时,IT人员和业务人员需要进行充分深入的沟通,完全理解到业务含义,甚至在当前企业使用的业务逻辑上进行长远考虑,预测未来可能出现的变动,基于此,再去设计API的数据结构,这对于开发人员的业务能力要求就非常高了,若非对供应链业务足够了解,很难一次到位,制定出完美的规范标准 。企业作为API的设计方,在和合作伙伴使用API方式集成时,若是在双方关系中不够强势,可能还需要根据合作伙伴的需求,调整API的数据结构 。我们以发货时包装的业务场景为例:

API VS EDI

文章插图
在需求沟通初始,开发人员和业务人员一起梳理了内部的业务逻辑,得出结论:发货时只会有散箱,将来肯定也不会用到托盘 。但之后由于企业内部业务扩展,在包装的时候需要用到托盘了,此时要修改API的数据格式就会变得尤为困难,一方面,开发工作量显著增加,另一方面,之前已经对接完成的合作伙伴,他们的程序设计也需要进行改变,然后双方重新启动业务测试,这无疑加大了对接双方的工作量 。
而作为API的调用方,若是原始API接口数据格式做了变动,改动范围如果只是字段的增加的话,可能影响不会太大,但若删减字段,或者数据结构做了调整,那么可能程序的处理逻辑也需要随之改变,甚至需要重新开发 。面对某些不太靠谱的API接口设计方,接口调用方可能真的有苦难言 。退一步来说,即使API接口设计方非常靠谱,在这里悄悄说一句:亚马逊的API接口近期已经从V2升级到V3啦~
而对于EDI而言,EDI拥有标准化的商业文档,最常见的有X12和等 。X12是由美国国家标准委员会在1979年创立的认可标准委员会(ASC)X12制定的EDI报文标准,而则是联合国欧洲经济委员会(UN/ECE)为简化贸易程序促进国际贸易活动,公布的一套用于行政、商业和运输业的EDI国际标准 。这些商业化标准,是国际组织结合各大型企业、各个行业产业的业务场景和逻辑,制定出的一套几乎能够覆盖所有常见的业务场景、满足绝大多数企业需求的商业规范文档 。EDI标准化商业文档拥有经典数据结构,兼容所有常见业务,能够解决行业内99%的问题,在全球范围内通用 。并且支持业务扩展,在扩展时不会影响到之前已经实现的合作伙伴 。
当然,对于非EDI专业人员来说,可能EDI唯一的问题在于对EDI商业规范标准的理解了,因为是全球通用的商业文档,所以可读性不是很高,过程较难梳理 。不过,对于IT人员来说,绝不会比学习一门新的开发语言要难,而且举一反三,只要成功完成一两个EDI的对接,后续就都不是问题了 。
说到这里,可能有人对API还有些疑问:“我对我们的IT人员能力有着充分的信心,我们可以在设计数据结构时就考虑的非常全面,尽可能的把数据结构设计的足够完善” 。想说的是,EDI商业化文档是国际组织经过几十年的探索和实践,应用于数以亿计的企业用户,并且在不断的进行完善后得到的一套文档结构和标准,在已经有这种模式化的商业文档的前提下,企业没有必要浪费太多的人力物力财力再去做重复的工作,自定义API设计到极致,可能得到的也就是EDI了 。