ConnectApi — Input/Output, Limits & More

DEX455 - ConnectApi 类、DataWeave、Data 360 与平台特性

📄 第 289 页 🎬 视频课程

课程章节介绍

好,我们来看一下这一页的内容,讲的是ConnectApi类的一些关键特性,用起来的时候需要注意的几个地方。 首先,ConnectApi的方法可以接收两种类型的参数:一种是简单的基元类型,比如普通的字符串、Id;另一种是复杂的ConnectApi输入对象,相当于一个包含多个字段的数据结构。实际开发时,你可以根据需求灵活选择。 当方法调用成功,它会返回可嵌套的输出对象。也就是说,返回给你的对象里面可能还装着其他对象,层级可以套得很深,你需要一层一层地去解析里面的信息。 然后,这里有两个配额相关的概念要记住。每个ConnectApi写操作都会消耗一个TLR声明,这算是一种额外的内部资源限制。同时,绝大多数调用都会计入你组织24小时的API请求总配额。所以如果你在循环里频繁调用,很容易就超限。 特别要注意的是,那些依赖于Chatter功能的方法,还受到更细的速率限制:按每个用户、每个命名空间、每小时来计次。一旦超过了限制,系统就会抛出RateLimitResponse异常,你的代码里得做好异常处理,不然用户体验会很差。 还有一个容易踩坑的地方:ConnectApi类是可以在没有启用Chatter的Org中被打包部署的,也就是说打包时Chatter不是强制的。但是,如果运行时那个Org把Chatter禁用了,调用相关方法就会抛出一个运行时异常,有时候我们叫它Nothing异常,程序就会中断。所以封装组件时,最好先判断一下Chatter是否可用。 最后,输出对象序列化之后,生成的格式和Connect REST API返回的JSON格式很像。这一点很方便,你在调试或者跟REST API对接时,结构基本上是一致的,可以互相参考。 好,这张幻灯片的核心点就这些,记住这些限制和特性,以后用ConnectApi就会顺手很多。

关键词

Apex Salesforce Developer Guide