Bulk Insert with a Multipart Request

DEX502 - Module 8: Bulk API

📄 第 328 页 🎬 视频课程

课程章节介绍

让我们来聊聊如何在Salesforce中使用多部分请求来批量插入数据。这个过程其实挺简单的,我会尽量用简单的语言来解释。 首先,你需要知道的是,Salesforce的Bulk API 2.0允许你通过一个请求同时创建作业并上传数据。这样做的好处是,你不需要先创建一个作业,然后再上传数据,而是可以一步到位。 ### 第一步:准备你的CSV文件 你需要有一个CSV文件,这个文件包含了你要插入到Salesforce中的数据。记住,这个文件的总大小不能超过20,000个字符。所以,如果你的数据很多,可能需要分成几个小文件来处理。 ### 第二步:设置请求的URL 你需要向Salesforce发送一个POST请求,请求的URL是这样的: ``` /services/data/APIVersion/jobs/ingest/ ``` 这里的`APIVersion`是指你使用的Salesforce API的版本号,比如`v50.0`。 ### 第三步:设置请求头 在发送请求之前,你需要设置一些请求头信息。这些信息告诉Salesforce你发送的是什么类型的数据,以及你希望接收什么类型的响应。 - ,Content-Type,: 这个应该设置为`multipart/form-data; boundary=boundary`。这里的`boundary`是一个分隔符,用来分隔请求中的不同部分。 - ,Accept,: 这个应该设置为`application/json`,表示你希望接收的响应是JSON格式的。 ### 第四步:构建请求体 请求体是你要发送给Salesforce的实际数据。它由几个部分组成: 1. ,第一部分,:这部分包含了作业的元数据,比如作业的类型(插入、更新等)、对象类型(比如Account、Contact等)等。 2. ,第二部分,:这部分是你的CSV文件内容。 每一部分都需要用`boundary`来分隔。比如: ``` --boundary Content-Disposition: form-data; name="jobInfo" Content-Type: application/json { "operation": "insert", "object": "Account", "contentType": "CSV" } --boundary Content-Disposition: form-data; name="file"; filename="data.csv" Content-Type: text/csv [这里是你的CSV文件内容] --boundary-- ``` ### 第五步:发送请求 当你准备好所有的请求头和请求体后,就可以发送这个POST请求了。Salesforce会处理你的请求,并返回一个响应,告诉你作业是否成功创建,以及作业的ID等信息。 ### 总结 通过这种方式,你可以一次性完成作业的创建和数据的上传,非常高效。只要记住,CSV文件的大小不能超过20,000个字符,并且要正确设置请求头和请求体。 希望这个解释对你有帮助!如果有任何问题,随时问我哦!