Отправка массива с помощью HTTParty Gem

Я использую HTTParty Gem для отправки данных в API SugarCRM.

Мне удалось успешно пройти проверку подлинности с помощью API, и теперь я пытаюсь найти в нем преимущество, публикуя данные в API.

Я столкнулся с проблемой при попытке отправить поля name_value_pair, которые находятся в Sugar CRMs Документация должна быть отправлена ​​следующим образом:

"name_value_list" => array(
    array(
        'name' => 'last_name',
        'value' => 'Victor',
    ),

    array(
        'name' => 'phone_mobile',
        'value' => ‘9999999999’
    ),
),

Пытаясь преобразовать это в Ruby, я получил это как мой запрос -

response2 = HTTParty.post(base_uri,
        body: {
          method: "set_entry",
          input_type: "JSON",
          response_type: "JSON",
          rest_data: {
            session: session_id,
            module_name: 'Leads',
            name_value_list:
              [
                [
                  'name', 'last_name'
                ],
                [
                  'value', 'Victor'
                ],
              ]
          }.to_json
        },
        debug_output: $stdout
      )

Тем не менее, CRM API возвращает мне ошибку 500. Как я могу структурировать эти данные массива так, чтобы они имитировали документацию PHP для name_value_list поле

2 ответа

Решение

Я посмотрел на http://www.w3schools.com/php/php_arrays.asp, на "Ассоциативные массивы", и я думаю, что у вас есть PHP, в котором пары ключ / значение должны быть хешем, а не массивом. Поэтому я предлагаю попробовать это:

name_value_list:
   [
      {
         'name' => 'last_name',
         'value' => 'Victor'
      },
   ]

(Единственное изменение заключается в том, что внутренние квадратные скобки преобразуются в фигурные скобки.)

Хорошо попробуйте конвертировать оригинальную строку в HTTPartyодин, как есть, то есть:

name_value_list:
   [
      [
         'name' => 'last_name',
         'value' => 'Victor'
      ],
   ]
Другие вопросы по тегам