0.5INI文件格式说明
什么是INI接口格式
为了简化接口的开发,避免开发接口时使用JSON等数据格式,我们提供了INI文件交换的接口方式。
接口统一使用常见的ini文件格式,并且使用文件交换的方式进行数据通讯。
INI格式接口文件优点是:
采用文件格式交换,跟踪更方便。
一个文件中完整定义了协议命令的名称、get参数内容、post参数内容。
支持多层级的数据表达。
扩展方便,参数无长度和数量限制。
一个典型的提交文件格式如下
[action]
action=do_confirm
[get]
id=11872
state=2
bzid=201512280001
[post]
info=
hint=菜品红烧大排已估清,未能下单
提交内容中主要为三节的内容
[action]
本节为协议命令,目前只有一个键名:action,值为本次需要调用的协议名称,例如action=do_confirm
[get]
本节为协议get参数名称,如:id=18187,每个参数使用一个键名和值
[post]
本节为协议post参数,如info=开台失败
一个典型的返回文件格式如下
[result]
status=1
info=提交成功
返回文件中有一节[result],所有返回的参数内容都在本节中。
多级分支树形结构数据组织方式
在协议中有许多数据需要JSON格式提交的多级树形结构,而INI文件只支持节、键这样两级的数据组织方式,为了解决这个问题,我们做了如下格式约定:
1.当此参数内容为数组内容时,使用data=array:8这样的标识来声明data键为一个数量为8的数组。
2.INI文件中再增加一节,节名为[post_data_0]来表示post节中data数据第0下标数组内容。同样后面几个依次表示为[post_data_1],[post_data_2]为样的格式。
3.如果data数组中还有名为list的数组,则在[post_data_0]中定义list=array:5,表示本节中有一个数量为5的list数组。
4.同样list数组的内容放在[post_data_0_list_0]为样的节中。
5.更多层级的树形结构类似,即节名称post_data_0_list_0所表示本节为post节中data键数组第0个中的list数组的第0个数据。
样例
当POST参数中需要提交一个名为bill的一个结构的数据内容
按JSON格式如下
bill={
"date": "20151228",
"time": "120108",
"table": "88",
"pscount": 3,
"bzid": "201512280008",
"item": [
{
"gdsid": "0001050",
"name": "红烧大排翅",
"qty": 1,
"price": 188,
"amt": 188,
"ctid": "01001",
"ctname": "燕鲍翅",
"unit": "例"
}
],
"pay": [
{
"code": "xj",
"name": "现金",
"amt": 180
},
{
"code": "zk",
"name": "折扣",
"amt": 8
}
]
}
按INI格式如下:
[action]
action=du_put_bill
[get]
[post]
bill={object}
[post_bill]
date=20151228
time=120108
table=188
pscount=3
bzid=201512280008
item=array:1
pay=array:2
[post_bill_item_0]
gdsid=0001050
name=红烧大排翅
ctid=01001
ctname=燕鲍翅
unit=例
qty=1
price=188
amt=188
[post_bill_pay_0]
code=xj
name=现金
amt=180
[post_bill_pay_1]
code=zk
name=折扣
amt=8