0.5INI文件格式说明

优质
小牛编辑
133浏览
2023-12-01

什么是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