理解Smartsheet API中的多联系人和多拾取列表列
发表在2019年10月14日
Smartsheet喜欢两者兼得:重要的是要防止实现中断(即向后兼容),但总是有新的和更有趣的特性,如多联系人和多选择列表列(有时称为多下拉列表列)。那么Smartsheet API是如何满足这两个标准的呢?
在游戏语言中,当你达到一定级别时便会出现新的功能:第14级让你能够获得一个新的角色,或在第31级时你可以使用菠萝作为火箭筒的弹药。玩家说他们正在“升级”。
在同样的意义上,新的Smartsheet UI功能,如多联系人或多选择列表使用水平
查询参数作为旧方法和新功能之间的区别。当你不用的时候水平
查询参数时,这些列类型的值将作为字符串返回(因为列类型被转换为TEXT_NUMBER
).
例如:向后兼容的多拾取列表
在下面这组JSON响应片段中,工作表有一个多选择列表列,单元格有两个值:May和August。
与一个获得/床单/ {id}
请求且没有查询参数,Columns对象的相关部分如下所示:
{“标题”:“Column5”,“类型”:“TEXT_NUMBER”,“确认”:假的,},
Cells对象的相关部分将两个cell值合并为一个字符串:
{"columnId": 8447963757340548, "value": "May, August", "displayValue": "May, August"},
您可能还注意到,这里同时有一个“value”和一个“displayValue”参数。(提示:您真正希望的是“objectValue”参数,但它还没有在这里。objectValue参数更加健壮,能够在数组中显示多个值。我建议使用包括= objectValue
参数,如果您想要最完整的信息。)
示例:具有新功能的多选择列表
通过使用水平
参数来告诉Smartsheet API服务器您已经升级,您可以通过列类型的MULTI_PICKLIST
.不要忘记包含objectValue!
下面是Node.js中的一个例子:
//指定查询参数var参数个数={包括:“objectValue”,水平:“2”};/ /设置选项var选项={id:5913695999955124,queryParameters:参数个数};//获取多个选择列表信息smartsheet_client.表.getSheet(选项).然后(函数(sheetInfo){控制台.日志(sheetInfo);}).抓(函数(错误){控制台.日志(错误);});
在这种情况下,Columns对象的JSON响应的相关部分现在看起来如下所示:
{title: 'example multi picklist column',类型:“MULTI_PICKLIST”,options: [Array], validate: true,},
Cells对象的JSON响应的相关部分如下所示:
{“columnId”:8447963757340548,"objectValue": {"objectType": "MULTI_PICKLIST", "values": ["May", "August"]},"displayValue": "May, August"},
多触点呢?
多重接触的工作原理与此大致相同。Smartsheet首先开发了多点接触,所以级别较低。的两个查询参数水平
而且包括= objectValue
.
什么级别对应哪个请求?
让我们回到电子游戏的类比中。多联络人首先出现,所以等级查询的数值较低。仪表板、报告和工作表之间略有不同,但下表将帮助您跟踪哪个级别对应哪个内容。
最近,Smartsheet宣布了多选择列表列,所以它们将是下一个层次。你需要再次升级。
多触点 | Multi-picklist | |
仪表板(又名景点) | 2 | 3. |
报告 | 1 | 3. |
表 | 1 | 2 |
如果你想要一个工作表的多联系人和多拾取列表信息,使用" level=2 ",对于报告,使用" level=3 ",以此类推。
使用更高的级别
就像在游戏中,当你升级后,你不需要返回一个关卡去使用前一个关卡的东西——它们都会随你一起移动。因此,为了确保总是在响应中获得多联系人和多拾取列表数据,请在get请求中使用最高级别的查询参数。
当我第一次介绍升级这个比喻时,我不知道你想到的是什么电子游戏,但我打算用我的新火箭发射器向外星人射击菠萝!或者,您知道,在对GET查询的响应中看到实际的电子邮件地址。