HighRise API Создайте человека, которому не хватает пропущенного имени, пока оно там - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь создать человека в highrise, используя API.В ответ появляется сообщение об ошибке «Имя отсутствует. У контактов должно быть имя».

Вот мой код:

let x = """<?xml version="1.0" encoding="UTF-8"?>
<person>
  <first-name>name</first-name>
  <last-name>last</last-name>
  <contact-data>
    <email-addresses type="array">
      <email-address>
        <address>someEmail@gmail.com</address>
      </email-address>
    </email-addresses>
  </contact-data>
  <tags type="array">
    <tag>
      <id type="integer">6154219</id>
      <name>sometag</name>
    </tag>
  </tags>
</person>"""

let req = new RestRequest("/people.xml", Method.POST)
req.AddParameter("Content-Type", "application/xml")
req.AddParameter("application/xml", x, ParameterType.RequestBody)
let res = client.Execute(req) 

Ответ возвращает код состояния 422.Не уверен, что я тут не так делаю?

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Я считаю, что это результат попытки добавить теги при создании пользователя.Это не совсем понятно из API, но, по моему опыту, ни одна формулировка поля тегов не может быть отправлена ​​компании / человеку и может быть успешной.

В качестве альтернативы, и я не говорю f #, поэтому я могу 'Точно, но «Content-Type» должен быть в заголовках.Добавляет ли компонент параметра, который вы используете, явно в качестве заголовка?

Поле пропущенного имени появилось у меня до того, как заработал заголовок.

0 голосов
/ 08 ноября 2018

Оказывается, вы не можете добавлять теги при создании нового человека.Это необходимо добавить в отдельный запрос после добавления контакта.Это явно не упоминается в документации, но можно сделать вывод из их примеров.

0 голосов
/ 05 октября 2018

Исходя из аналогичного вопроса StackOverflow , похоже, что вы можете получить эту ошибку, если в вашем запросе есть что-то еще, например, когда отсутствует соответствующий Content-Type.

Я не знаком с Highrise или Restsharp, чтобы дать определенный ответ, но, похоже, что-то не так с тем, как вы создали запрос.Просто прочитав ваш код, я нахожу использование AddParameter для добавления тела несколько неожиданным (хотя это может быть правильно).Похоже, вы могли бы вместо этого использовать AddBody, поэтому я бы попробовал это.

(Это скорее комментарий, чем правильный ответ, но он слишком длинный, чтобы публиковать его как комментарий!)

...