Как сделать HTTP-вызов с action=PATCH с помощью CFHTTP (ColdFusion 10)

Я интегрировал REST API iCIMS и обнаружил, что для некоторых вызовов REST API требуется HTTP-глагол PATCH. Однако кажется, что ColdFusion 10 этого не поддерживает. Есть ли способ обойти это?


person Roul    schedule 24.02.2015    source источник


Ответы (2)


Это не было добавлено до ColdFusion 11, обновление 3.

Большинство сервисов API позволяют использовать POST вместо PATCH. Из документов для iCIMS видно, что они также принимают POST или PATCH.

person Sean Coyne    schedule 24.02.2015
comment
Я проверяю только этот вариант. Мне просто любопытно узнать, есть ли в CF10 способ сделать вызов PATCH. - person Roul; 25.02.2015
comment
Не используя cfhttp. Я полагаю, вы могли бы перейти на Java. - person Sean Coyne; 25.02.2015

Работа с iCIMS API тоже здесь, но на CF 9, поэтому поддержки PATCH нет. Но я обнаружил, что вы можете выполнить POST, а затем переопределить его с помощью дополнительного заголовка: X-HTTP-Method-Override: PATCH

В API iCIMS для обновления некоторых данных требуется метод PATCH, а не метод POST, который создает новую запись. Итак, что-то вроде следующего должно работать.

<cfhttp method="post" url="api.icims.com/customers/1234/people/1289/fields/phones/332">
<cfhttpparam type="header" name="Authorization" value="Basic #auth_string#" >
<cfhttpparam type="header" name="X-HTTP-Method-Override" value="PATCH">
<cfhttpparam type="body" value="#your_json#" >
</cfhttp>
person Matt W    schedule 02.09.2015
comment
Хорошее дополнение, +1. Добро пожаловать в СО :) - person Leigh; 02.09.2015
comment
Спасибо. Я забыл упомянуть, что это было протестировано и проверено специалистом по интеграции в iCIMS. - person Matt W; 02.09.2015