REST例子

本部分提供了使用 REST API 资源执行各种不同任务的示例。 包括使用对象、组织信息和查询。

有关 REST API 资源的完整参考信息,请参阅参考。

  1. 获取有关我的组织
    的信息 本节中的示例使用 REST API 资源来检索组织级别的信息,例如组织中所有可用对象的列表。
  2. 使用对象元数据
    本节中的示例使用 REST API 资源来检索对象元数据信息。有关修改或创建对象元数据信息的信息,请参阅《元数据 API 开发人员指南》。
  3. 使用记录
    本节中的示例使用 REST API 资源创建、检索、更新和删除记录,以及其他与记录相关的操作。
  4. 删除 Lightning Experience 事件系列 使用 HTTP DELETE 方法删除系列
    中的一个或多个 IsRecurrence2 事件。您可以删除单个事件、特定事件之后的所有事件(包括特定事件)或整个事件系列。
  5. 使用搜索和查询
    本节中的示例使用 REST API 资源通过 Salesforce 对象搜索语言 (SOSL) 和 Salesforce 对象查询语言 (SOQL) 以及其他搜索 API 来搜索和查询记录。有关 SOSL 和 SOQL 的详细信息,请参阅 SOQL 和 SOSL 参考。
  6. 从富文本区域字段中
    获取图像 使用 sObject 富文本图像获取资源从富文本区域字段中检索图像。在此示例中,我们从名为 的潜在客户记录的自定义富文本字段中检索图像。我们假设图像已经上传到此字段。LeadPhotoRichText__c
  7. 插入或更新 Blob 数据
    您可以使用 sObject 基本信息、sObject 行或 sObject 集合资源在 Salesforce 中插入或更新二进制大型对象 (Blob),例如图像或 PDF。可以将任何类型的文件或二进制数据上载到包含 blob 字段的任何标准对象。
  8. 获取 Blob 数据 使用 sObject Blob Get 资源获取给定记录的 Blob 数据
    。若要获取 blob 数据,Salesforce 中必须存在包含 blob 数据的记录。
  9. 使用最近查看的信息
    本节中的示例使用 REST API 查询和最近查看的资源以编程方式检索和更新最近查看的记录信息。
  10. 管理用户密码
    本节中的示例使用 REST API 资源来管理用户密码,例如设置或重置密码。
  11. 使用审批流程和流程规则
    本节中的示例使用 REST API 资源来处理审批流程和流程规则。
  12. 使用事件监视
    这些示例使用 REST API 事件监视数据,其中包含可用于评估组织使用趋势和用户行为的信息。事件监控可通过 Lightning 平台 SOAP API 和 REST API 通过 EventLogFile 对象进行访问。因此,您可以将日志数据与自己的后端存储和数据集市集成,以关联来自多个组织和不同系统的数据。
  13. 使用复合资源 本节中的示例使用复合资源
    通过最大程度地减少客户端和服务器之间的往返次数来提高应用程序的性能。

获取有关我的组织的信息

本节中的示例使用 REST API 资源来检索组织级别 信息,例如组织中所有可用对象的列表。

  • 列出可用的 REST API 版本 使用“版本”资源列出有关当前可用的每个 REST API 版本的摘要信息,包括版本、标签和指向每个版本
    根目录的链接。无需身份验证即可检索版本列表。
  • 列出组织限制 使用“限制”资源列出组织限制
  • 列出可用的 REST 资源 使用 *** 资源列出可用于指定 API 版本的资源
    。这将提供每个附加资源的名称和 URI。
  • 获取对象列表 使用“描述全局”资源列出组织中可用且可供登录用户使用的对象
    。此资源还返回组织编码,以及查询中允许的最大批大小。
  • 获取元数据已更改
    时的对象列表 使用 Describe Global 资源和 HTTP 标头确定对象的元数据是否已更改。If-Modified-Since

列出可用的 REST API 版本

使用“版本”资源列出摘要信息 关于当前可用的每个 REST API 版本,包括版本、标签和 链接到每个版本的根目录。您不需要身份验证即可检索 版本。示例用法

curl https://MyDomainName.my.salesforce.com/services/data/ -H "Authorization: Bearer token"

示例请求正文不需要示例 JSON 响应正文

[
    {
        "label" : "Spring '11",
        "url" : "/services/data/v21.0",
        "version" : "21.0"
    },
    {
        "label" : "Summer '11",
        "url" : "/services/data/v22.0",
        "version" : "22.0"
    },
    {
        "label" : "Winter '12",
        "url" : "/services/data/v23.0",
        "version" : "23.0"
    }
    ...
]

示例 XML 响应正文

<?xml version="1.0" encoding="UTF-8"?>
<Versions>
    <Version>
        <label>Spring &apos;11</label>
        <url>/services/data/v21.0</url>
        <version>21.0</version>
    </Version>
    <Version>
        <label>Summer &apos;11</label>
        <url>/services/data/v22.0</url>
        <version>22.0</version>
    </Version><Version>
        <label>Winter &apos;12</label>
        <url>/services/data/v23.0</url>
        <version>23.0</version>
    </Version>
    ...
</Versions>

列出组织限制

使用“限制”资源列出组织限制。

  • Max是组织的限制。
  • Remaining是调用或事件的数量 留给组织。

示例用法

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/limits/ -H "Authorization: Bearer token" -H "X-PrettyPrint:1"

示例请求正文不需要示例响应正文

{
    "ActiveScratchOrgs": {
        "Max": 3,
        "Remaining": 3
    },
    "AnalyticsExternalDataSizeMB": {
        "Max": 40960,
        "Remaining": 40960
    },
    "ConcurrentAsyncGetReportInstances": {
        "Max": 200,
        "Remaining": 200
    },
    "ConcurrentEinsteinDataInsightsStoryCreation": {
        "Max": 5,
        "Remaining": 5
    },
    "ConcurrentEinsteinDiscoveryStoryCreation": {
        "Max": 2,
        "Remaining": 2
    },
    "ConcurrentSyncReportRuns": {
        "Max": 20,
        "Remaining": 20
    },
    "DailyAnalyticsDataflowJobExecutions": {
        "Max": 60,
        "Remaining": 60
    },
    "DailyAnalyticsUploadedFilesSizeMB": {
        "Max": 51200,
        "Remaining": 51200
    },
    "DailyFunctionsApiCallLimit" : {
      "Max" : 235000,
      "Remaining" : 235000
    },
    "DailyApiRequests": {
        "Max": 5000,
        "Remaining": 4937
    },
    "DailyAsyncApexExecutions": {
        "Max": 250000,
        "Remaining": 250000
    },
    "DailyAsyncApexTests": {
        "Max": 500,
        "Remaining": 500
    },
    "DailyBulkApiBatches": {
        "Max": 15000,
        "Remaining": 15000
    },
    "DailyBulkV2QueryFileStorageMB": {
        "Max": 976562,
        "Remaining": 976562
    },
    "DailyBulkV2QueryJobs": {
        "Max": 10000,
        "Remaining": 10000
    },
    "DailyDeliveredPlatformEvents" : {
      "Max" : 10000,
      "Remaining" : 10000
    },
    "DailyDurableGenericStreamingApiEvents": {
        "Max": 10000,
        "Remaining": 10000
    },
    "DailyDurableStreamingApiEvents": {
        "Max": 10000,
        "Remaining": 10000
    },
    "DailyEinsteinDataInsightsStoryCreation": {
        "Max": 1000,
        "Remaining": 1000
    },
    "DailyEinsteinDiscoveryPredictAPICalls": {
        "Max": 50000,
        "Remaining": 50000
    },
    "DailyEinsteinDiscoveryPredictionsByCDC": {
        "Max": 5000000,
        "Remaining": 5000000
    },
    "DailyEinsteinDiscoveryStoryCreation": {
        "Max": 100,
        "Remaining": 100
    },
    "DailyGenericStreamingApiEvents": {
        "Max": 10000,
        "Remaining": 10000
    },
    "DailyScratchOrgs": {
        "Max": 6,
        "Remaining": 6
    },
    "DailyStandardVolumePlatformEvents": {
        "Max": 10000,
        "Remaining": 10000
    },
    "DailyStreamingApiEvents": {
        "Max": 10000,
        "Remaining": 10000
    },
    "DailyWorkflowEmails": {
        "Max": 100000,
        "Remaining": 100000
    },
    "DataStorageMB": {
        "Max": 1024,
        "Remaining": 1024
    },
    "DurableStreamingApiConcurrentClients": {
        "Max": 20,
        "Remaining": 20
    },
    "FileStorageMB": {
        "Max": 1024,
        "Remaining": 1024
    },
    "HourlyAsyncReportRuns": {
        "Max": 1200,
        "Remaining": 1200
    },
    "HourlyDashboardRefreshes": {
        "Max": 200,
        "Remaining": 200
    },
    "HourlyDashboardResults": {
        "Max": 5000,
        "Remaining": 5000
    },
    "HourlyDashboardStatuses": {
        "Max": 999999999,
        "Remaining": 999999999
    },
    "HourlyLongTermIdMapping": {
        "Max": 100000,
        "Remaining": 100000
    },
    "HourlyManagedContentPublicRequests": {
        "Max": 50000,
        "Remaining": 50000
    },
    "HourlyODataCallout": {
        "Max": 20000,
        "Remaining": 20000
    },
    "HourlyPublishedPlatformEvents": {
        "Max": 50000,
        "Remaining": 50000
    },
    "HourlyPublishedStandardVolumePlatformEvents": {
        "Max": 1000,
        "Remaining": 1000
    },
    "HourlyShortTermIdMapping": {
        "Max": 100000,
        "Remaining": 100000
    },
    "HourlySyncReportRuns": {
        "Max": 500,
        "Remaining": 500
    },
    "HourlyTimeBasedWorkflow": {
        "Max": 1000,
        "Remaining": 1000
    },
    "MassEmail": {
        "Max": 5000,
        "Remaining": 5000
    },
    "MonthlyEinsteinDiscoveryStoryCreation": {
        "Max": 500,
        "Remaining": 500
    },
    "Package2VersionCreates": {
        "Max": 6,
        "Remaining": 6
    },
    "Package2VersionCreatesWithoutValidation": {
        "Max": 500,
        "Remaining": 500
    },
    "PermissionSets": {
        "Max": 1500,
        "Remaining": 1499,
        "CreateCustom": {
            "Max": 1000,
            "Remaining": 999
        }
    },
    "PrivateConnectOutboundCalloutHourlyLimitMB": {
        "Max": 0,
        "Remaining": 0
    },
    "SingleEmail": {
        "Max": 5000,
        "Remaining": 5000
    },
    "StreamingApiConcurrentClients": {
        "Max": 20,
        "Remaining": 20
    }
}

列出可用的 REST 资源

使用“按版本划分的资源”资源列出可用于 指定的 API 版本。这将提供每个附加资源的名称和 URI。例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/ -H "Authorization: Bearer token"

示例请求正文不需要示例 JSON 响应正文

{
   "tooling" : "/services/data/v59.0/tooling",
   "metadata" : "/services/data/v59.0/metadata",
   "eclair" : "/services/data/v59.0/eclair",
   "folders" : "/services/data/v59.0/folders",
   "prechatForms" : "/services/data/v59.0/prechatForms",
   "contact-tracing" : "/services/data/v59.0/contact-tracing",
   "jsonxform" : "/services/data/v59.0/jsonxform",
   "chatter" : "/services/data/v59.0/chatter",
   "payments" : "/services/data/v59.0/payments",
   "tabs" : "/services/data/v59.0/tabs",
   "appMenu" : "/services/data/v59.0/appMenu",
   "quickActions" : "/services/data/v59.0/quickActions",
   "queryAll" : "/services/data/v59.0/queryAll",
   "commerce" : "/services/data/v59.0/commerce",
   "wave" : "/services/data/v59.0/wave",
   "iot" : "/services/data/v59.0/iot",
   "analytics" : "/services/data/v59.0/analytics",
   "search" : "/services/data/v59.0/search",
   "smartdatadiscovery" : "/services/data/v59.0/smartdatadiscovery",
   "identity" : "https://MyDomainName.my.salesforce.com/id/
      00DRO0000008aXd2AI/005RO000000HfnkYAC",
   "composite" : "/services/data/v59.0/composite",
   "parameterizedSearch" : "/services/data/v59.0/parameterizedSearch",
   "fingerprint" : "/services/data/v59.0/fingerprint",
   "theme" : "/services/data/v59.0/theme",
   "nouns" : "/services/data/v59.0/nouns",
   "domino" : "/services/data/v59.0/domino",
   "event" : "/services/data/v59.0/event",
   "serviceTemplates" : "/services/data/v59.0/serviceTemplates",
   "recent" : "/services/data/v59.0/recent",
   "connect" : "/services/data/v59.0/connect",
   "licensing" : "/services/data/v59.0/licensing",
   "limits" : "/services/data/v59.0/limits",
   "process" : "/services/data/v59.0/process",
   "dedupe" : "/services/data/v59.0/dedupe",
   "async-queries" : "/services/data/v59.0/async-queries",
   "query" : "/services/data/v59.0/query",
   "jobs" : "/services/data/v59.0/jobs",
   "localizedvalue" : "/services/data/v59.0/localizedvalue",
   "mobile" : "/services/data/v59.0/mobile",
   "emailConnect" : "/services/data/v59.0/emailConnect",
   "consent" : "/services/data/v59.0/consent",
   "tokenizer" : "/services/data/v59.0/tokenizer",
   "compactLayouts" : "/services/data/v59.0/compactLayouts",
   "sobjects" : "/services/data/v59.0/sobjects",
   "actions" : "/services/data/v59.0/actions",
   "support" : "/services/data/v59.0/support"
}

示例 XML 响应正文

<?xml version="1.0" encoding="UTF-8"?> 
<urls>
   <tooling>/services/data/v59.0/tooling</tooling>
   <metadata>/services/data/v59.0/metadata</metadata>
   <eclair>/services/data/v59.0/eclair</eclair>
   <folders>/services/data/v59.0/folders</folders>
   <prechatForms>/services/data/v59.0/prechatForms</prechatForms>
   <contact-tracing>/services/data/v59.0/contact-tracing</contact-tracing>
   <jsonxform>/services/data/v59.0/jsonxform</jsonxform>
   <chatter>/services/data/v59.0/chatter</chatter>
   <payments>/services/data/v59.0/payments</payments>
   <tabs>/services/data/v59.0/tabs</tabs>
   <appMenu>/services/data/v59.0/appMenu</appMenu>
   <quickActions>/services/data/v59.0/quickActions</quickActions>
   <queryAll>/services/data/v59.0/queryAll</queryAll>
   <commerce>/services/data/v59.0/commerce</commerce>
   <wave>/services/data/v59.0/wave</wave>
   <iot>/services/data/v59.0/iot</iot>
   <analytics>/services/data/v59.0/analytics</analytics>
   <search>/services/data/v59.0/search</search>
   <smartdatadiscovery>/services/data/v59.0/smartdatadiscovery</smartdatadiscovery>
   <identity>https://MyDomainName.my.salesforce.com/id/
      ​​​00DRO0000008aXd2BI/​005RO000000HfnkYAB</identity>
   <composite>/services/data/v59.0/composite</composite>
   <parameterizedSearch>/services/data/v59.0/parameterizedSearch</parameterizedSearch>
   <fingerprint>/services/data/v59.0/fingerprint</fingerprint>
   <theme>/services/data/v59.0/theme</theme>
   <nouns>/services/data/v59.0/nouns</nouns>
   <domino>/services/data/v59.0/domino</domino>
   <event>/services/data/v59.0/event</event>
   <serviceTemplates>/services/data/v59.0/serviceTemplates</serviceTemplates>
   <recent>/services/data/v59.0/recent</recent>
   <connect>/services/data/v59.0/connect</connect>
   <licensing>/services/data/v59.0/licensing</licensing>
   <limits>/services/data/v59.0/limits</limits>
   <process>/services/data/v59.0/process</process>
   <dedupe>/services/data/v59.0/dedupe</dedupe>
   <async-queries>/services/data/v59.0/async-queries</async-queries>
   <query>/services/data/v59.0/query</query>
   <jobs>/services/data/v59.0/jobs</jobs>
   <localizedvalue>/services/data/v59.0/localizedvalue</localizedvalue>
   <mobile>/services/data/v59.0/mobile</mobile>
   <emailConnect>/services/data/v59.0/emailConnect</emailConnect>
   <consent>/services/data/v59.0/consent</consent>
   <tokenizer>/services/data/v59.0/tokenizer</tokenizer>
   <compactLayouts>/services/data/v59.0/compactLayouts</compactLayouts>
   <sobjects>/services/data/v59.0/sobjects</sobjects>
   <actions>/services/data/v59.0/actions</actions>
   <support>/services/data/v59.0/support</support>
</urls>

更多信息

有关身份资源的信息,请参阅身份 URL。

有关其他资源,请参阅参考。

获取对象列表

使用“描述全局”资源列出组织中可用的对象以及可供登录用户使用的对象 用户。此资源还返回组织编码,以及 查询。示例用法

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/ -H "Authorization: Bearer token"

示例请求正文不需要示例响应正文

{ 
  "encoding" : "UTF-8", 
  "maxBatchSize" : 200, 
  "sobjects" : [ { 
    "activateable" : false, 
    "custom" : false,
    "customSetting" : false, 
    "createable" : true, 
    "deletable" : true, 
    "deprecatedAndHidden" : false, 
    "feedEnabled" : true, 
    "keyPrefix" : "001", 
    "label" : "Account", 
    "labelPlural" : "Accounts", 
    "layoutable" : true, 
    "mergeable" : true, 
    "mruEnabled" : true, 
    "name" : "Account", 
    "queryable" : true, 
    "replicateable" : true, 
    "retrieveable" : true, 
    "searchable" : true, 
    "triggerable" : true, 
    "undeletable" : true,
    "updateable" : true, 
    "urls" : { 
      "sobject" : "/services/data/v59.0/sobjects/Account", 
      "describe" : "/services/data/v59.0/sobjects/Account/describe", 
      "rowTemplate" : "/services/data/v59.0/sobjects/Account/{ID}" 
    },
  }, 
  ...
  ]
}

如果元数据已更改,则获取对象列表

使用 Describe Global 资源和 HTTP 标头确定对象的元数据是否具有 改变。

If-Modified-Since

使用“描述全局”资源时,可以包含带有日期格式的标题。如果你这样做了, 仅当可用对象的元数据自 提供日期。如果自提供的日期以来未修改任何元数据,则返回状态代码,但无响应 身体。If-Modified-SinceEEE, dd MMM yyyy HH:mm:ss z304 Not Modified

以下示例假定在 3 月 23 日之后未对对象进行任何更改。 2015.示例:描述全局请求/services/data/v59.0/sobjects与请求一起使用的示例标头If-Modified-SinceIf-Modified-Since: Tue, 23 Mar 2015 00:00:00 GMT示例响应正文未返回响应正文示例响应状态代码

HTTP/1.1 304 Not Modified
Date: Wed, 25 Jul 2015 00:05:46 GMT

如果在 2015 年 3 月 23 日之后对对象进行了更改,则响应正文将包含 所有可用对象。有关示例,请参阅获取对象列表。

使用对象元数据

本节中的示例使用 REST API 资源来检索对象元数据 信息。有关修改或创建对象元数据信息的信息,请参阅元数据 API 开发人员 指南

  • 获取对象
    的元数据 使用 sObject 基本信息资源获取对象的元数据。
  • 获取对象
    的字段和其他元数据 使用 sObject Describe 资源检索对象的所有元数据,包括有关每个字段、URL 和子关系的信息。
  • 获取对象元数据更改
    使用 sObject Describe 资源和 HTTP 标头确定对象元数据是否已更改。If-Modified-Since

获取对象的元数据

使用 sObject 基本信息资源获取元数据 对于对象。获取帐户元数据的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/ -H "Authorization: Bearer token"

用于获取帐户元数据的示例请求正文不需要用于获取帐户元数据的示例响应正文

{
  "objectDescribe" :
  {
    "name" : "Account",
    "updateable" : true,
    "label" : "Account",
    "keyPrefix" : "001",

    ...

    "replicateable" : true,
    "retrieveable" : true,
    "undeletable" : true,
    "triggerable" : true
  },
  "recentItems" :
  [
    {
      "attributes" :
      {
        "type" : "Account",
        "url" : "/services/data/v59.0/sobjects/Account/001D000000INjVeIAL"
      },
      "Id" : "001D000000INjVeIAL",
      "Name" : "asdasdasd"
    },

    ...

  ]
}

若要获取对象的完整描述(包括字段名称及其元数据),请参阅获取对象列表。

获取对象的字段和其他元数据

使用 sObject Describe 资源检索对象的所有元数据,包括有关每个对象的信息 字段、URL 和子关系。例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/describe/ -H "Authorization: Bearer token"

示例请求正文不需要示例响应正文

{
  "name" : "Account",
  "fields" :
  [
    {
      "length" : 18,
      "name" : "Id",
      "type" : "id",
      "defaultValue" : {    "value" : null  },
      "updateable" : false,
      "label" : "Account ID",
      ...
    },

    ...

  ],


  "updateable" : true,
  "label" : "Account",
  "keyPrefix" : "001",
  "custom" : false,

  ...

  "urls" :
  {
    "uiEditTemplate" : "https://MyDomainName.my.salesforce.com/{ID}/e",
    "sobject" : "/services/data/v59.0/sobjects/Account",
    "uiDetailTemplate" : "https://MyDomainName.my.salesforce.com/{ID}",
    ...
  },

  "childRelationships" :
  [
    {
      "field" : "ParentId",
      "deprecatedAndHidden" : false,
      ...
    }, 

    ....

  ],

  "createable" : true,
  "customSetting" : false,
  ...
}

有关请求正文中的项目的更多信息,请参阅《SOAP API 开发人员指南》中的 DescribesObjectResult。

获取对象元数据更改

使用 sObject Describe 资源和 HTTP 标头确定对象元数据是否已更改。

If-Modified-Since

使用 sObject Describe 资源时,可以包含带有日期格式的标题。如果这样做,则仅当对象元数据出现时,才会返回响应元数据 自提供的日期以来已更改。如果元数据自 提供的日期,状态代码 返回,不带响应正文。If-Modified-SinceEEE, dd MMM yyyy HH:mm:ss z304 Not Modified

以下示例假定没有更改,例如 new custom 字段,已在 7 月 3 日之后对Merchandise__c对象进行, 2013.示例 sObject Describe 请求

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/describe -H "Authorization: Bearer token" -H "If-Modified-Since: Wed, 3 Jul 2013 19:43:31 GMT"

示例响应正文未返回响应正文示例响应状态代码

HTTP/1.1 304 Not Modified
Date: Fri, 12 Jul 2013 05:03:24 GMT

如果在 2013 年 7 月 3 日之后对Merchandise__c进行了更改, 响应正文将包含Merchandise__c的元数据。有关示例,请参阅获取对象的字段和其他元数据。

使用记录

本节中的示例使用 REST API 资源来创建、检索、更新和 删除记录以及其他与记录相关的操作。

  • 创建记录
    使用 sObject 基本信息资源创建新记录。您可以在请求数据中提供所需的字段值,并使用 POST HTTP 方法发送请求。如果调用成功,响应正文将包含新记录的 ID。
  • 更新记录
    使用 sObject Rows 资源更新记录。在请求数据中提供更新的记录信息,并使用具有特定记录 ID 的资源的 PATCH 方法来更新该记录。单个文件中的记录必须具有相同的对象类型。
  • 删除记录
    使用 sObject Rows 资源删除记录。指定记录 ID,并使用资源的 DELETE 方法删除记录。
  • 从标准对象记录
    中获取字段值 使用 sObject Rows 资源的 GET 方法从记录中检索字段值。
  • 使用 Salesforce ID
    从外部对象记录中获取字段值 您可以使用 sObject Rows 资源从记录中检索字段值。在参数中指定要检索的字段,并使用资源的 GET 方法。fields
  • 使用外部 ID 标准字段从外部对象记录中获取字段值 使用 sObject Rows 资源从记录中检索字段
    值。在参数中指定要检索的字段,并使用资源的 GET 方法。fields
  • 使用外部 ID 获取记录 可以使用“sObject Rows by External ID”资源的 GET 方法获取具有特定外部 ID
    的记录。
  • 使用外部 ID 插入或更新(更新插入)记录 可以使用“按外部 ID 列出的 sObject 行”资源根据指定的外部 ID
    字段的值创建记录或更新现有记录(更新插入)。
  • 使用友好 URL 遍历关系 通过使用 sObject 关系资源构造友好 URL
    ,可以遍历标准对象和自定义对象中的关系字段。此方法允许您直接访问由关系关联的记录。使用友好 URL 是访问记录的更简单方法,方法是从关系字段获取对象 ID,然后检查关联的对象 ID 记录。
  • 获取给定时间范围内
    已删除记录的列表 使用 sObject Get Deleted 资源获取指定对象的已删除记录列表。指定删除给定对象的记录的日期和时间范围。已删除的记录将写入删除日志(定期清除),并将从大多数操作(如 sObject 行或查询)中筛选出来(尽管 QueryAll 将在结果中包含已删除的记录)。
  • 获取给定时间范围内
    更新的记录列表 使用 sObject Get Updated 资源获取指定对象的更新(修改或添加)记录的列表。指定更新给定对象的记录的日期和时间范围。

创建记录

使用 sObject 基本信息资源创建新记录。在 请求数据,并使用 POST HTTP 方法发送请求。响应正文 如果调用成功,则包含新记录的 ID。

以下示例请求创建一个新的客户记录,其中包含 newaccount.json 中提供的新记录。只有 name 字段是 在此示例中指定,但您也可以为其他帐户提供值 领域。创建新帐户的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/ -H "Authorization: Bearer token" -H "Content-Type: application/json" -d "@newaccount.json"

示例请求正文 newaccount.json 文件,用于创建 新账户

{
  "Name" : "Express Logistics and Transport"
}

成功创建新帐户后的示例响应正文

{
  "id" : "001D000000IqhSLIAZ",
  "errors" : [ ],
  "success" : true
}

更新记录

使用 sObject Rows 资源更新记录。提供更新的记录 请求数据中的信息,并将资源的 PATCH 方法与 用于更新该记录的特定记录 ID。单个文件中的记录必须相同 对象类型。

在以下示例中,将更新帐户中的计费城市。更新后的 记录信息在 patchaccount.json 中提供。更新 Account 对象的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/001D000000INjVe -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @patchaccount.json -X PATCH

用于更新的示例请求正文 patchaccount.json 文件 Account 对象中的字段

{
    "BillingCity" : "San Francisco"
}

用于更新 Account 对象中的字段的示例响应正文未返回错误响应请参阅状态代码和错误响应。以下示例使用 Java 和 HttpClient 通过 REST API 更新记录。注意 HttpClient 中没有 PatchMethod,因此 PostMethod 被重写以返回 “PATCH”作为其方法名称。此示例假定资源 URL 已 传入并包含对象名称和记录 同上。

public static void patch(String url, String sid) throws IOException {
  PostMethod m = new PostMethod(url) {
    @Override public String getName() { return "PATCH"; }
  };

  m.setRequestHeader("Authorization", "OAuth " + sid);

  Map<String, Object> accUpdate = new HashMap<String, Object>();
  accUpdate.put("Name", "Patch test");
  ObjectMapper mapper = new ObjectMapper();
  m.setRequestEntity(new StringRequestEntity(mapper.writeValueAsString(accUpdate), "application/json", "UTF-8"));

  HttpClient c = new HttpClient();
  int sc = c.executeMethod(m);
  System.out.println("PATCH call returned a status code of " + sc);
  if (sc > 299) {
    // deserialize the returned error message
    List<ApiError> errors = mapper.readValue(m.getResponseBodyAsStream(), new TypeReference<List<ApiError>>() {} );
    for (ApiError e : errors)
      System.out.println(e.errorCode + " " + e.message);
  }
}

private static class ApiError {
  public String errorCode;
  public String message;
  public String [] fields;
}

如果 您使用的 HTTP 库不允许覆盖或设置任意 HTTP 方法名称,您可以发送 POST 请求并通过以下方式提供对 HTTP 方法的覆盖 查询字符串参数。在 PATCH 示例中,您可以将 PostMethod 行替换为不使用 覆盖:

_HttpMethod

PostMethod m = new PostMethod(url + "?_HttpMethod=PATCH");

删除记录

使用 sObject Rows 资源删除记录。指定记录 ID 并使用 资源来删除记录。删除客户记录的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/001D000000INjVe -H "Authorization: Bearer token" -X DELETE

示例请求正文不需要示例响应正文无返回

从标准对象记录中获取字段值

使用 sObject Rows 资源的 GET 方法从记录中检索字段值。

您可以使用可选参数指定要检索的字段。如果您指定的字段不存在或您无法通过 字段级安全性,则返回 400 错误响应。fields

如果不使用该参数,请求将从记录中检索所有标准字段和自定义字段。这些检索到的字段与 对象的 sObject Describe 请求返回的字段。字段级安全性无法访问的字段不会在响应正文中返回。fields

在以下示例中,从帐户中检索帐号和帐单邮政编码。从 Account 对象上的字段中检索值的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/001D000000INjVe​?fields=AccountNumber,BillingPostalCode -H "Authorization: Bearer token"

示例请求正文不需要示例响应正文

{
    "AccountNumber" : "CD656092",
    "BillingPostalCode" : "27215",
}

使用 Salesforce ID 从外部对象记录中获取字段值

使用 sObject Rows 资源从记录中检索字段值。指定字段 想要在参数中检索并使用 资源的 GET 方法。

fields

在以下示例中,自定义 字段是从与非高数据卷关联的外部对象中检索的 外部数据源。Country__c从 Customer 外部对象的字段中检索值的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Customer__x/x01D0000000002RIAQ?fields=Country__c -H "Authorization: Bearer token"

示例请求正文不需要示例响应正文

{
  "attributes" : {
    "type" : "Customer__x",
    "url" : "/services/data/v59.0/sobjects/Customer__x/x01D0000000002RIAQ"
  },
  "Country__c" : "Argentina",
  "Id" : "x01D0000000002RIAQ"
}

使用 外部 ID 标准字段

使用 sObject Rows 资源从记录中检索字段值。 在参数中指定要检索的字段,并使用资源的 GET 方法。

fields

在以下示例中,自定义 字段是从外部对象中检索的。请注意,(CACTU) 不是 Salesforce ID。相反,它是 外部对象。Country__cid从 Customer 外部对象的字段中检索值的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Customer__x/CACTU?fields=Country__c -H "Authorization: Bearer token"

示例请求正文不需要示例响应正文

{
  "attributes" : {
    "type" : "Customer__x",
    "url" : "/services/data/v59.0/sobjects/Customer__x/CACTU"
  },
  "Country__c" : "Argentina",
  "ExternalId" : "CACTU"
}

使用外部 ID 获取记录

可以使用 sObject Rows by External ID 资源的 GET 方法获取具有特定外部 ID 的记录。

以下示例假定存在一个Merchandise__c自定义对象,该对象具有 MerchandiseExtID__c外部 ID 字段。使用外部 ID 检索Merchandise__c记录的示例用法

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/MerchandiseExtID__c/123 -H "Authorization: Bearer token"

示例请求正文不需要示例响应正文

{ 
    "attributes" : {
        "type" : "Merchandise__c",
        "url" : "/services/data/v59.0/sobjects/Merchandise__c/a00D0000008oWP8IAM"
     },
    "Id" : "a00D0000008oWP8IAM",
    "OwnerId" : "005D0000001KyEIIA0",
    "IsDeleted" : false,
    "Name" : "Example Merchandise",
    "CreatedDate" : "2012-07-12T17:49:01.000+0000",
    "CreatedById" : "005D0000001KyEIIA0",
    "LastModifiedDate" : "2012-07-12T17:49:01.000+0000",
    "LastModifiedById" : "005D0000001KyEIIA0",
    "SystemModstamp" : "2012-07-12T17:49:01.000+0000",
    "Description__c" : "Merch with external ID",
    "Price__c" : 10.0,
    "Total_Inventory__c" : 100.0,
    "Distributor__c" : null,
    "MerchandiseExtID__c" : 123.0
}

使用外部 ID 插入或更新(更新插入)记录

可以使用“按外部 ID 列出的 sObject 行”资源执行以下操作: 根据指定值创建记录或更新现有记录 (upsert) 外部 ID 字段。

重要

在可能的情况下,我们更改了非包容性条款,以符合我们的 平等的公司价值观。我们保留了某些条款,以避免对 客户实施。

  • 如果外部 ID 不匹配,则根据 请求正文。
  • 如果外部 ID 匹配一次,则记录将根据 请求正文。
  • 如果外部 ID 多次匹配,则会报告 300 错误,并且 未创建或更新记录。

以下各节介绍如何使用外部 ID 资源进行检索 按外部 ID 和更新插入记录进行记录。

注意

在 REST API 中,更新插入使用外部 ID,而不是记录 ID。然而,在 Apex 中,upsert 可以是 与外部 ID 和记录 ID 一起使用。请注意两者的区别 REST API 和 Apex。

更新插入新记录

此示例使用 PATCH 方法插入新记录。它假设 外部 ID 字段“customExtIdField__c”已添加到帐户中。 它还假定 customExtIdField 值为 11999 的客户记录 尚不存在。更新插入尚不存在的记录的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/customExtIdField__c/11999 -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @newrecord.json -X PATCH

示例 JSON 请求正文 newrecord.json 文件

{
    "Name" : "California Wheat Corporation",
    "Type" : "New Customer"
}

示例 JSON 响应成功的响应 是:

{
    "id" : "00190000001pPvHAAU",
    "errors" : [ ],
    "success" : true,
    "created": true
}

这 HTTP 状态代码为 201(已创建)。

注意

参数存在 在 API 版本 46.0 及更高版本的响应中。它不会出现在 早期版本。created错误响应外部 ID 不正确 田:

{
    "message" : "The requested resource does not exist",
    "errorCode" : "NOT_FOUND"
}

有关详细信息,请参阅状态代码和错误响应。

使用 id 作为外部插入新记录 编号

此示例使用 POST 方法作为特殊情况插入一条记录,其中 Id 字段被视为外部 ID。因为价值 的 Id 是 ,它是 从请求中省略。在编写要更新插入的代码时,此模式非常有用 使用不同外部 ID 的多个记录,并且您不想请求单独的 ID 资源。使用 Id 的 POST 在 API 版本 37.0 中可用,并且 后。null插入尚不存在的记录的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/Id -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @newrecord.json -X POST

示例 JSON 请求正文 newrecord.json 文件

{
    "Name" : "California Wheat Corporation",
    "Type" : "New Customer"
}

示例 JSON 响应成功的响应 是:

{
    "id" : "001D000000Kv3g5IAB",
    "success" : true,
    "errors" : [ ],
    "created": true
}

这 HTTP 状态代码为 201(已创建)。

注意

参数存在 在 API 版本 46.0 及更高版本的响应中。它不会出现在 早期版本。created

更新插入现有记录

此示例使用 PATCH 方法更新现有记录。它假设 外部 ID 字段“customExtIdField__c”已添加到帐户中 并且存在 customExtIdField 值为 11999 的客户记录。请求 使用 updates.json 指定更新的字段值。更新插入现有记录的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Account/customExtIdField__c/11999 -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @updates.json -X PATCH

示例 JSON 请求正文 updates.json 文件

{
    "BillingCity" : "San Francisco"
}

示例 JSON 响应在 API 版本 46.0 及更高版本中,HTTP 状态代码为 200 (OK) 和 成功响应 是:

{
    "id" : "001D000000Kv3g5IAB",
    "success" : true,
    "errors" : [ ],
    "created": false
}

在 API 版本 45.0 及更早版本,HTTP 状态代码为 204(无内容) 并且没有响应机构。错误响应如果外部 ID 值不唯一,则返回 HTTP 状态代码 300。 加上与查询匹配的记录列表。更多信息 有关错误,请参阅状态代码和错误响应。如果外部 ID 字段不存在,则会显示错误消息和代码 返回:

{
    "message" : "The requested resource does not exist",
    "errorCode" : "NOT_FOUND"
}

更新插入记录并与外部 ID 关联

如果某个对象使用关系引用另一个对象,则可以 使用 REST API 插入或更新记录,并使用 外部 ID。以下示例创建一条记录,并通过以下方式将其与父记录关联 外部 ID。它假设以下几点:

  • Merchandise__c具有名为 MerchandiseExtID__c。
  • Line_Item__c具有名为 LineItemExtID__c,以及与Merchandise__c的关系。
  • Merchandise__c存在MerchandiseExtID__c值为 123.
  • LineItemExtID__c值为 456 的Line_Item__c记录不存在。这是创建并关联到 Merchandise__c记录。

更新插入记录和引用相关对象的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Line_Item__c/LineItemExtID__c/456 -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @new.json -X PATCH

示例 JSON 请求正文 new.json 文件请注意,相关的Merchandise__c记录是使用 Merchandise__c的外部 ID 田。

{
   "Name" : "LineItemCreatedViaExtID",
   "Merchandise__r" :
   {
       "MerchandiseExtID__c" : 123
   }
}

示例 JSON 响应成功的响应 是:

{
    "id" : "a02D0000006YUHrIAO",
    "errors" : [ ],
    "success" : true,
    "created": true
}

HTTP 状态代码为 201(已创建)。

注意

参数存在 在 API 版本 46.0 及更高版本的响应中。它不会出现在 早期版本。created错误响应如果外部 ID 值不唯一,则返回 HTTP 状态代码 300。 加上与查询匹配的记录列表。更多信息 有关错误,请参阅状态代码和错误响应。如果外部 ID 字段不存在,则会显示错误消息和代码 返回:

{
    "message" : "The requested resource does not exist",
    "errorCode" : "NOT_FOUND"
}

您还可以使用此方法更新现有记录。例如,如果你 创建了上面示例中所示的Line_Item__c,您可以尝试更新 相关Merchandise__c使用另一个请求。更新记录的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Line_Item__c/LineItemExtID__c/456 -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @updates.json -X PATCH

示例 JSON 请求正文 updates.json 文件这假设存在另一个Merchandise__c记录,并且 MerchandiseExtID__c值 333.

{
   "Merchandise__r" :
   {
       "MerchandiseExtID__c" : 333
   }
}

示例 JSON 响应在 API 版本 46.0 及更高版本中,HTTP 状态代码为 200 (OK) 和 成功响应 是:

{
    "id" : "001D000000Kv3g5IAB",
    "success" : true,
    "errors" : [ ],
    "created": false
}

在 API 版本 45.0 及更早版本,HTTP 状态代码为 204(否 内容),并且没有响应正文。如果关系类型为主从,并且关系设置为不 允许重新设置父级,并且您尝试更新父级外部 ID,您将收到一个 HTTP 状态代码 400 错误,错误代码为 INVALID_FIELD_FOR_INSERT_UPDATE。

另见

  • 按外部 ID 划分的 sObject 行

使用友好 URL 遍历关系

您可以通过构造 使用 sObject 关系资源的友好 URL。这种方法允许您直接 访问由关系关联的记录。使用友好 URL 是 通过从关系字段获取对象 ID,然后检查 关联的对象 ID 记录。

重要

在可能的情况下,我们更改了非包容性条款,以符合我们的 平等的公司价值观。我们保留了某些条款,以避免对客户产生任何影响 实现。

关系名称遵循某些约定,这些约定取决于方向 (parent to 子项,或子项到父项)的关系和相关对象的名称。这 约定在了解关系名称中进行了介绍。 SOQL 和 SOSL 参考。在单个 REST 中可以进行的关系遍历次数是有限制的 API 调用。这些限制与 SOQL 的限制相同,如了解关系查询中所述 SOQL 和 SOSL 参考中的限制。保留以下内容 遍历关系时要牢记局限性。

  • 指定子级与父级关系时,不能超过五个级别 走过。以下内容遍历了两个子项到父项 关系。https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/ChildOfChild__c/record id/Child__r/ParentOfChild__r
  • 指定父子关系时,不能超过一个级别 走过。以下内容遍历一个父到子 关系。https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/ParentOfChild__c/record id/Child__r

遍历标准对象

标准对象“联系人”包含“客户”标准的关系字段 对象。以下示例检索与联系人相关的客户记录 记录。

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Contact/0035e00000PiemmAAB/Account -H "Authorization: Bearer token"

用于遍历标准对象关系的示例请求正文不需要用于遍历标准对象的示例响应正文 simple 关系

{
    "attributes": {
        "type": "Account",
        "url": "/services/data/v59.0/sobjects/Account/0015e00000TwULCAA3"
    },
    "Id": "0015e00000TwULCAA3",
    "IsDeleted": false,
    "Name": "relationshipAccountName",
    "PhotoUrl": "/services/images/photo/0015e00000TwULCAA3",
    "OwnerId": "0055e000003E8ooAAC",
    "CreatedDate": "2021-11-06T17:38:40.000+0000",
    "CreatedById": "0055e000003E8ooAAC",
    "LastModifiedDate": "2021-11-06T17:38:40.000+0000",
    "LastModifiedById": "0055e000003E8ooAAC",
    "SystemModstamp": "2021-11-06T17:38:40.000+0000",
    "LastActivityDate": null,
    "LastViewedDate": "2021-11-06T17:40:50.000+0000",
    "LastReferencedDate": "2021-11-06T17:40:50.000+0000"
}

遍历简单关系的示例此名为 Merchandise__c 的自定义对象包含一个查找关系字段,用于 自定义对象Distributor__c子对象。以下示例检索 Distributor__c与Merchandise__c记录相关的记录。

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/a01D000000INjVe/Distributor__r -H "Authorization: Bearer token"

用于遍历简单关系的示例请求正文不需要用于遍历简单关系的示例响应正文

{
    "attributes" : 
    { 
        "type" : "Distributor__c",
        "url" : "/services/data/v59.0/sobjects/Distributor__c/a03D0000003DUhcIAG"
    },
    "Id" : "a03D0000003DUhcIAG",
    "OwnerId" : "005D0000001KyEIIA0",
    "IsDeleted" : false,
    "Name" : "Distributor1",
    "CreatedDate" : "2011-12-16T17:43:01.000+0000",
    "CreatedById" : "005D0000001KyEIIA0",
    "LastModifiedDate" : "2011-12-16T17:43:01.000+0000",
    "LastModifiedById" : "005D0000001KyEIIA0",
    "SystemModstamp" : "2011-12-16T17:43:01.000+0000",
    "Location__c" : "San Francisco"
}

如果没有相关记录与关系名称关联,则 REST API 调用将失败。 因为关系是无法遍历的。使用前面的示例,如果 Distributor__c Merchandise__c 记录中的字段设置为 ,则 GET 调用将返回 404 错误响应。null您可以在 单个 REST API 调用,只要不超过关系查询限制即可。如果 自定义对象Line_Item__c是与Merchandise__c自定义项关系中的子对象 对象,并且Merchandise__c还有一个子对象Distributor__c自定义对象,您可以访问 Distributor__c记录从Line_Item__c记录开始,使用类似 以后。

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Line_Item__c/a02D0000006YL7XIAW/Merchandise__r/Distributor__r -H "Authorization: Bearer token"

关系遍历还支持以下关系的 PATCH 和 DELETE 方法: 解析为单个记录。使用 PATCH 方法,您可以更新相关的 记录。使用 PATCH 更新关系记录的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/a01D000000INjVe/Distributor__r -H "Authorization: Bearer token"  -d @update_info.json -X PATCH

用于更新 update_info.json 中包含的关系记录的示例 JSON 请求正文

{
    "Location__c" : "New York"
}

用于更新关系记录的示例响应正文未返回

最后,使用 DELETE 方法可以删除相关记录。使用 DELETE 删除关系记录的示例

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/a01D000000INjVe/Distributor__r -H "Authorization: Bearer token" -X DELETE

删除关系记录的请求正文示例不需要更新关系记录的示例响应正文未返回

遍历具有多个记录的关系

您可以遍历与多个记录的关系,并获得以下响应: 包含记录集。对于解析为多个记录的关系, 仅支持 GET 方法。遍历具有多条记录的关系的示例如果我们有一个名为 Merchandise__c 的自定义对象,其中包含 master – Line_Item__c自定义对象的详细信息关系字段, 以下示例Line_Item__c检索与 Merchandise__c记录。

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/a01D000000INjVe/Line_Items__r -H "Authorization: Bearer token"

用于遍历具有多个关系的示例请求正文 记录不需要用于遍历具有多个关系的示例响应正文 记录在此示例中,有两条Line_Item__c记录是 检索。

{
    "done" : true,
    "totalSize" : 2,
    "records" :
    [
        {
            "attributes" :
            {
                "type" : "Line_Item__c",
                "url" : "/services/data/v59.0/sobjects/Line_Item__c/a02D0000006YL7XIAW"
            },
            "Id" : "a02D0000006YL7XIAW",
            "IsDeleted" : false,
            "Name" : "LineItem1",
            "CreatedDate" : "2011-12-16T17:44:07.000+0000",
            "CreatedById" : "005D0000001KyEIIA0",
            "LastModifiedDate" : "2011-12-16T17:44:07.000+0000",
            "LastModifiedById" : "005D0000001KyEIIA0",
            "SystemModstamp" : "2011-12-16T17:44:07.000+0000",
            "Unit_Price__c" : 9.75,
            "Units_Sold__c" : 10.0,
            "Merchandise__c" : "a00D0000008oLnXIAU",
            "Invoice_Statement__c" : "a01D000000D85hkIAB"
        },
        {
            "attributes" :
            {
                "type" : "Line_Item__c",
                "url" : "/services/data/v59.0/sobjects/Line_Item__c/a02D0000006YL7YIAW"
            },
            "Id" : "a02D0000006YL7YIAW",
            "IsDeleted" : false,
            "Name" : "LineItem2",
            "CreatedDate" : "2011-12-16T18:53:59.000+0000",
            "CreatedById" : "005D0000001KyEIIA0",
            "LastModifiedDate" : "2011-12-16T18:53:59.000+0000",
            "LastModifiedById" : "005D0000001KyEIIA0",
            "SystemModstamp" : "2011-12-16T18:54:00.000+0000",
            "Unit_Price__c" : 8.5,
            "Units_Sold__c" : 8.0,
            "Merchandise__c" : "a00D0000008oLnXIAU",
            "Invoice_Statement__c" : "a01D000000D85hkIAB"
        }
    ]
}

这 结果数据的序列化结构与结果数据的格式相同 通过 REST API 执行 SOQL 查询。有关通过以下方式执行 SOQL 查询的更多详细信息,请参阅查询 REST API

如果没有相关记录与关系名称关联,则 REST API 调用 返回 200 响应,响应正文中没有记录数据。这个结果是 与遍历到单个记录的空关系时的结果形成对比, 返回 404 错误响应。此行为是因为单个记录大小写 解析为可与 PATCH 或 DELETE 方法一起使用的 REST 资源。在 相比之下,只能查询多记录大小写。如果对具有多个记录的关系的初始 GET 请求仅返回部分 的结果中,响应的末尾包含字段 。例如,您可以获取一个字段 就像下面这样在你的末尾 响应。

nextRecordsUrl

"nextRecordsUrl" : "/services/data/v59.0/query/01gD0000002HU6KIAW-2000"

您可以使用实例提供的 URL 请求下一批记录 和会话信息,然后重复,直到检索到所有记录。这些 请求使用和不使用 包括任何参数。最后一批记录没有字段。nextRecordsUrlnextRecordsUrl检索剩余结果的示例用法

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/query/01gD0000002HU6KIAW-2000 -H "Authorization: Bearer token"

用于检索其余结果的示例请求正文不需要用于检索剩余结果的示例响应正文

{
    "done" : true,
    "totalSize" : 3200,
    "records" : [...]
}

筛选结果字段

通过关系遍历检索记录时,可以选择仅指定 使用参数返回记录字段的子集。多个字段用逗号分隔。这 以下示例仅从Distributor__c中检索 Location__c 字段 与Merchandise__c关联的记录 记录:

fields

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/a01D000000INjVe/Distributor__r?fields=Location__c -H "Authorization: Bearer token"

这 JSON 响应数据类似于 以后:

{
    "attributes" :
    {
        "type" : "Distributor__c",
        "url" : "/services/data/v59.0/sobjects/Distributor__c/a03D0000003DUhhIAG"
    },
    "Location__c" : "Chicago",
}

同样,对于产生多条记录的请求,您可以使用字段列表 指定记录集中返回的字段。例如,假设您有一个 与两个Line_Item__c记录关联的关系。你只想要 这些记录中的名称和Units_Sold__c字段。您可以使用以下命令 叫。

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/a01D000000INjVe/Line_Items__r?fields=Name,Units_Sold__c -H "Authorization: Bearer token"

这 响应数据将类似于 以后。

{
    "done" : true,
    "totalSize" : 2,
    "records" : 
    [
        {
            "attributes" :
            {
                "type" : "Line_Item__c",
                "url" : "/services/data/v59.0/sobjects/Line_Item__c/a02D0000006YL7XIAW"
            },
            "Name" : "LineItem1",
            "Units_Sold__c" : 10.0
        },
        {
            "attributes" :
            {
                "type" : "Line_Item__c",
                "url" : "/services/data/v59.0/sobjects/Line_Item__c/a02D0000006YL7YIAW"
            },
            "Name" : "LineItem2",
            "Units_Sold__c" : 8.0
        }
    ]
}

如果字段参数集中列出的任何字段对活动对象不可见 用户,则 REST API 调用失败。在前面的示例中,如果 Units_Sold_c 字段 被字段级安全性对活动用户隐藏,则调用将返回 400 错误响应。

获取给定时间范围内已删除记录的列表

使用 sObject Get Deleted 资源获取指定对象的已删除记录列表。指定日期和时间范围 其中删除了给定对象的记录。已删除的记录将写入删除日志(定期清除),并将从大多数操作中筛选出,例如 sObject 行或查询(尽管 QueryAll 将在结果中包含已删除的记录)。获取已删除的Merchandise__c记录列表的示例用法 2013年5月5日至2013年5月10日

curl https://MyDomainName.my/services/data/v59.0/sobjects/Merchandise__c/deleted/​​​?start=2013-05-05T00%3A00%3A00%2B00%3A00&end=2013-05-10T00%3A00%3A00%2B00%3A00 -H "Authorization: Bearer token"

示例请求正文不需要JSON 示例响应正文

{ 
    "deletedRecords" : 
    [ 
        { 
            "id" : "a00D0000008pQRAIA2", 
            "deletedDate" : "2013-05-07T22:07:19.000+0000"
        }
    ],
    "earliestDateAvailable" : "2013-05-03T15:57:00.000+0000",
    "latestDateCovered" : "2013-05-08T21:20:00.000+0000"
}

XML 示例响应正文

<?xml version="1.0" encoding="UTF-8"?> 
<Merchandise__c> 
    <deletedRecords> 
        <deletedDate>2013-05-07T22:07:19.000Z</deletedDate> 
        <id>a00D0000008pQRAIA2</id> 
    </deletedRecords>
    <earliestDateAvailable>2013-05-03T15:57:00.000Z</earliestDateAvailable>
    <latestDateCovered>2013-05-08T21:20:00.000Z</latestDateCovered>
</Merchandise__c>

获取给定时间范围内更新的记录列表

使用 sObject Get Updated 资源获取 指定的对象。指定给定记录的日期和时间范围 对象已更新。获取已更新的Merchandise__c记录列表的示例用法 2013年5月6日至2013年5月10日

curl https://MyDomainName.my.salesforce.com/services/data/v59.0/sobjects/Merchandise__c/updated/​​​?start=2013-05-06T00%3A00%3A00%2B00%3A00&end=2013-05-10T00%3A00%3A00%2B00%3A00 -H "Authorization: Bearer token"

示例请求正文不需要JSON 示例响应正文

{ 
    "ids" : 
    [ 
        "a00D0000008pQR5IAM", 
        "a00D0000008pQRGIA2", 
        "a00D0000008pQRFIA2"
    ],
    "latestDateCovered" : "2013-05-08T21:20:00.000+0000" 
}

XML 示例响应正文

<?xml version="1.0" encoding="UTF-8"?> 
<Merchandise__c> 
    <ids>a00D0000008pQR5IAM</ids>
    <ids>a00D0000008pQRGIA2</ids>
    <ids>a00D0000008pQRFIA2</ids>
    <latestDateCovered>2013-05-08T21:20:00.000Z</latestDateCovered>
</Merchandise__c>