UCBI 是一个处于 UCB 统一接口层的接口约定,它对上层提供统一的交互接口,对下层的不同服务平台进行适配,从而使上下层之间解耦。注意,UCBI 只是一个抽象的协议,只描述对外的表现,并不关心具体的实现方式。
由于聊天机器人是一种双向的通信,用户向机器人发消息通常表现为一个「事件」,机器人向用户发消息通常表现为一个「接口调用」,因此 UCBI 主要在这两方面进行统一化。
为了使语言不成为开发的障碍,UCBI 约定通过 HTTP 与上层通信,而与下层之间,可以使用 HTTP 也可以直接使用语言或平台限定的相应 SDK(如果使用后者,则此实现将同时也属于 UCB 开放层)。
接口调用一般就是上层应用对 UCBI 的 HTTP 接口的调用。而事件的通知可以通过两种方式进行,一种是由 UCBI 通过一个 POST URL 来直接上报事件,另一种是由上层应用通过长轮询来主动获取。
另外,数据格式方面,事件和接口调用统一使用 JSON 作为数据交换格式,而不使用 HTTP 表单或其它形式。
Event.md
和 API.md
分别从事件和接口调用两个方面来设计统一化协议,对于与 UCBI 程序本身相关的事件和接口,见 Meta.md
。