我的任务是研究swagger代码源,以从rest API创建基于python和R的客户端。测试的一部分涉及创建一个API,该API以json字符串的形式返回元素列表,然后客户端使用该API并将其反序列化为宽泛生成的模型。
python客户端按预期方式工作,调用的结果是这些元素的列表。 R客户端消耗其余调用的内容,但是,生成的模型有些出乎意料。不幸的是,我对R并没有太多的经验,所以不确定这是否只是用这种语言表示数据的标准方法。
使用在swagger-codegen github项目中可以找到的宠物商店示例,getPetsByStatus调用返回以下json:
[
{
photoUrls: [
"photoUrls",
"photoUrls"
],
name: "doggie",
id: 0,
category: {
name: "name",
id: 6
},
tags: [
{
name: "name",
id: 1
},
{
name: "name",
id: 1
}
],
status: "available"
},
{
photoUrls: [
"photoUrls",
"photoUrls"
],
name: "doggie",
id: 0,
category: {
name: "name",
id: 6
},
tags: [
{
name: "name",
id: 1
},
{
name: "name",
id: 1
}
],
status: "available"
}
]
在R客户端中,这返回的似乎是Pet的一个实例,它具有字段矢量,而不仅仅是Pets的矢量:
我想问的问题是,这是一种表示数据的标准R方式,还是这种摇摇欲坠的代码生成器正在使用其自己的非标准结构。