Apex Web 服务:Web 魔法师的构建模块
引言:
在这篇博客文章中,我将深入探讨如何在 Salesforce 中构建自定义 Apex Web 服务。当你需要让一个外部进程与 Salesforce 交互来读取或写入数据,而标准 REST API 又力不从心时,这些服务至关重要。我们将逐一讲解五个例子,复杂度逐步提高,从标准查询一直到更新。

自定义 Web 服务概览
我们将探讨五个自定义 Web 服务的例子:
**使用标准 SObject 列表的 GET:**用标准 SObject 列表获取数据。
**带 JSON 响应的包装器:**用一个 JSON 响应包装 GET 请求,加以增强。
**添加参数:**给 GET 请求引入参数,更精确地获取数据。
**用 POST 插入:**实现一个用于插入数据的 POST 请求。
**返回错误消息:**妥善处理并返回错误消息。
实现自定义 Web 服务
示例 1:使用标准 SObject 列表的 GET
在这个例子中,我们定义一个带有自定义 URI 的 REST 资源,并指定 HTTP 动词(GET)。类应该声明为 global,我们用一个简单的查询返回一个标准客户列表。

示例 2:带 JSON 响应的包装器
为了控制发回给客户端的数据,我们使用一个响应对象。我们返回的不是 SObject 列表,而是一个自定义响应对象的列表,用只包含 ID 和名称的轻量方式来表示客户。

示例 3:添加参数
当你需要某个特定客户的数据时,参数必不可少。通过读取 RestContext.params,你可以获取客户 ID,并把它用在 SOQL 的 WHERE 子句中来筛选数据。

示例 4:用 POST 插入
当你需要写入数据时,就使用 POST 方法。在这个例子中,我们创建一个响应对象和一个请求对象。请求对象接收一个带名称的客户,我们用 JSON 序列化器把请求序列化为一个特定的类。创建并插入一个新客户后,返回一个成功状态。

示例 5:返回错误消息
这个例子与示例 4 类似,但加入了错误处理。出现异常时,错误会被捕获并加入一个列表,状态码被设为 500(或任何你喜欢的数字)。

结论
通过这些例子,我们展示了在 Salesforce 中创建自定义 Apex Web 服务的基本构建模块。从一个简单的 GET 请求开始,我们逐步提高复杂度,引入了参数、POST 请求和错误处理。
敬请关注
感谢阅读,期待很快与你分享更多干货满满的探险!请继续关注 www.SteveTechArc.com 和 YouTube 频道 @SteveTechArc (opens in a new tab)。订阅,加深你对 Salesforce 以及如何将它与其他系统集成的理解。
与架构师同行以及正走在架构师之路上的人分享集成知识,一起改变世界!
STA 1.8