浅谈API 分类 (System API (SAPI), Process API (PAPI), Experience API (XAPI))

引言

在程式设计的过程中,经常使用Application Programming Interface,亦都是我们平常所说的 API。 API 定义了程式之间沟通的介面,使开发人员不用考虑程式的内部工作原理,亦能透过API 的定义,使用其内容。

如果你是API 新手,看完也不太清楚API 是什么 (什么是介面?? 竟究API 是怎么运作??),请参阅API 的简介(文章将会推出...)。而下文将浅谈行业之间常用的API分类-- System API (SAPI), Process API (PAPI), Experience API (XAPI),当中的分别和原意,并利用用例(use case)来介绍行业间怎样利用这三款API。


定义三款API (SAPI, PAPI, XAPI) 的原意 -- API-led Connectivity

在一间大型企业中,有着数以百计的系统,而每个系统都有着独立的作用,储存着不同的数据。如果你想执行一个动作(例如: 查询货物的运送状况),很多时候需要不同系统进行互相沟通(例如: 先要在货物系统找到货物ID,再利用货物ID 到运送系统找到运送的地点)。当企业里每分每秒都需要数以万计的系统沟通,怎样设计沟系统之间的沟通方式就变得很重要。

而API-led Connectivity (API 主导的连接方式)就是其中一个企业可以使用的架构,透过有条理地整理API (分为SAPI, PAPI, XAPI),并且以API 为系统之间的最主要沟通途径,令到已建立的沟通方式可以不断重用,减化系统架构以及节省开发时间。

API-led Connectivity Use case(Reference: https://dzone.com/articles/creating-system-api-using-mulesoft)

System API -- SAPI

API 应该是三款API 中最容易理解的。当开发人员编写程式时,开发人员会预先定义一些函数(function),方便其他软件或硬件访问。而这些函数(function)就会定义在SAPI 当中。

例如在一个顾客关系管理系统中(Enterprise relationship management (ERM) system),开发人员会定义一些程式来返回(get) 顾客的资料,例如Get_Customer_ID,又会定义一些程式来更改(set) 顾客的资料,例如Set_Customer_Name。而这些程式的定义将会储存在SAPI 中,方便其他程式使用。

而SAPI 亦有以下的特色:

    1. 系统: 企业内的核心系统(Core System)

    2. 目的: 提供核心系统的访问(access) 能力

    3. 使用周期: 6–12 个月

    4. 拥有权: Central IT

System API (SAPI) Application

Process API -- PAPI

但在企业中,不常见有过百款不同的系统。而每个系统中,也有着数以百计的SAPI。此时,你就会遇到个烦恼 --- 就是太多SAPI。作为管理者,你最主要的目的就是把手中的工作做到(get the job done),而不是中间的运作(例如:从那个系统取得数据,再到那个系统进行处理)。所以开发者就设计了不少的PAPI,以Service/ Process 为本 (例如: get order status),并由单个或多个底层系统提取数据作出运算,提供多个的Service/ Process。

例如在一个处理订单的系统中(Order Application),开发人员会设计出一个程式(Get Order Status),方便查看订单的状态,并将它定义在PAPI 中。其他系统只需要使用 Get_Order_Status(Order_ID)就可以取得订单的状态。而实际上,这个程式是整合了顾客系统(Customer App)、产品系统(Product App)及运送系统(Delivery App)的数据资料。

而PAPI 亦有以下的特色:

    1. 系统: Application system (Access non-central date)

    2. 目的: 提供服务 (Service/ Process)

    3. 使用周期: 3–6 个月

    4. 拥有权: Central IT and Line of Business IT

Process API (PAPI) Application

Experience API — XAPI

而当我们拥有不同的服务时,XAPI 则是帮助我们重新配置数据形式,以最吸引的方式显示到目标顾客身上。

例如我们拥有订单的资讯(Order Status)和价钱的资讯(Payment Status),我们可以以多种形式,传送给顾客。如先放订单资讯后放价钱的资讯 (Experience 1),又例如是先显示订单资讯再突然弹出价钱资讯(Experience 2)。这些不同体验可以透过开发XAPI 来实现。

而XAPI 亦有以下的特色:

    1. 系统: Channels

    2. 目的: 提供顾客体验 (Customer Experience)

    3. 使用周期: 4–8个星期

    4. 拥有权: Line of Business IT and Application Developers


Experience API (XAPI) Application

你可能感兴趣的:(浅谈API 分类 (System API (SAPI), Process API (PAPI), Experience API (XAPI)))