Я вижу, что Bulk API 1.0 поддерживает полезную нагрузку JSON в качестве типа контента для операций вставки. Однако я не могу установить, поддерживает ли Bulk API 2.0 JSON.

В моем теле Job Create я пытался отправить:

{
"operation":"insert",
"object":"Account",
"contentType":"JSON"
}

Ответ, который я получаю от Salesforce:

    {
        "errorCode": "UNSUPPORTEDCONTENTTYPE",
        "message": "UnsupportedContentType : JSON is not a valid Content-Type. Only 'CSV' is allowed"
    }

Что, очевидно, наводит меня на мысль, что JSON не поддерживается. Мне просто непонятно, почему Bulk API 1.0 поддерживает полезные нагрузки JSON, а Bulk API 2.0 — нет?

Я бы предпочел использовать Bulk API 2.0, так как мне удобнее работать с REST, чем с SOAP.

Итак, вопрос: кто-нибудь успешно использовал Bulk API 2.0 с JSON, и если да, то какой contentType был указан в вашем теле создания задания (или другом обходном пути)?

5
Robs 5 Окт 2018 в 02:25

1 ответ

Глядя на документацию по Bulk API 2.0 , он не поддерживает какие-либо другие contentType, кроме CSV. Ниже приведена выдержка из документации:

Тип содержимого для задания. Единственным допустимым значением (и значением по умолчанию) является CSV.

Что касается вашего вопроса:

Мне просто непонятно, почему Bulk API 1.0 поддерживает полезные нагрузки JSON, а Bulk API 2.0 — нет?

Все зависит от предложения продукта, поскольку какие функции должны быть предоставлены в какой версии. Если вы видите приведенную ниже выдержку из документации, он основан на тех же принципах REST, но допускает некоторую простую обработку и что есть несколько вещей, которые не поддерживаются в этой версии.

Salesforce предоставляет дополнительный API, Bulk API 2.0, который использует структуру REST API для обеспечения возможностей, аналогичных Bulk API. Используйте Bulk API 2.0 вместо Bulk API, если вам нужен упрощенный процесс для вставки, обновления, переноса или удаления больших наборов данных. Bulk API 2.0 в настоящее время не поддерживает запрос или queryAll.

5
Jayant Das 4 Окт 2018 в 18:17