ColdFusionから外部のRESTAPIを呼び出すには<
例えば、RESTAPIに対して、POSTでJSONデータを送る必要がある場合などは、下記のstackoverflowの質問に対する投稿の最初の Answer が参考になります。
https://stackoverflow.com/ques
<cfhttp>でmethod="POST"を指定し、<cfhttpparam>で name="Content-Type" を指定して、application/jsonデータを渡す処理の例です。
【抜粋】
<cfset stFields = {
"fields" = {
"first_name" = "myFirstName"
},
"email" = "email@domain.com"
}>
<cfhttp url="http://api.url.com" method="post" result="httpResp" timeout="60">
<cfhttpparam type="header" name="Content-Type" value="application/json" />
<cfhttpparam type="body" value="#serializeJSON(stFields
</cfhttp>
この例では、呼び出した結果がhttpResp.FileCo
ntentに戻されます。
(<cfdump var="#httpResp#">で確認頂くのも有効かと存じます)
尚、JSONとして渡す値に日本語が含まれていて、それが文字化けをする場合などは、Content-Typ
などが必要な場合があります。
<cfhttpparam type="header" name="Content-Type"
value="application/json; charset=UTF-8" >
また、JSON形式のパラメーターを渡す際に「項目の順序」が決まっている場合
構造体の指定の際に順序を維持する設定を行います。上記のstF
<cfset stFields = {
"fields" = [
"first_name" = "myFirstName",
"last_name" = "myLastName",
"department" = "myDept",
"group" = "myGroup",
"priority": 0,
"flag1": true
],
"email" = "email@domain.com"
}>
※項目を{}で囲むと通常の構造体(順番は任意)となり、[]で囲むと順序を維持する構造
体の指定になります
記事公開日:2022年03月30日
最終更新日:2022年03月30日
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.
Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.