API를 사용하고 있지만 정수 변수를 바인딩할 수 없습니다. 아래에 스크립트를 첨부하겠지만 약간의 설명이 도움이 될 것입니다. 또 다른 스크립트는 컬을 통해 전송된 데이터를 필터링하며 대부분의 데이터는 문자열이지만 API는 이 데이터를 정수로 강제합니다.
curl \
--data '{"version":"2.0",
"method":"cmdb.object.create",
"params":{"type":"C__OBJTYPE__VIRTUAL_SERVER",
"title":"'"${name}"'",
"categories":{"C__CATG__IP": [ { "ipv4_address" : "'"${ip}"'" } ],
"C__CATG__VIRTUAL_MACHINE__ROOT": [ { "hosts": $host, "description" : "'"${ops}"'" } ]
},
"apikey":"apikey"},"id": 1 }' \
--header "Content-Type: application/json" \
https://someURL
이름은 "VirtualMachine1", ipv4_address "1.2.3.4", 호스트 736, 작업 "Windows 7"일 수 있습니다.
이 컬의 오류 코드는 다음과 같습니다: code":-32600,"message":"잘못된 요청: 제공된 요청은 유효한 json rpc가 아닙니다. "
$host 대신 숫자만 쓰면 작동하므로 변수를 잘못 바인딩한 것 같습니다.
유효하고 유효한 요청은 다음과 같습니다.
curl \
--data '{"version":"2.0",
"method":"cmdb.object.create",
"params":{"type":"C__OBJTYPE__VIRTUAL_SERVER",
"title":"'"${name}"'",
"categories":{"C__CATG__IP": [ { "ipv4_address" : "'"${ip}"'" } ],
"C__CATG__VIRTUAL_MACHINE__ROOT": [ { "hosts": 123, "description" : "'"${ops}"'" } ]
},
"apikey":"apikey"},"id": 1 }' \
--header "Content-Type: application/json" \
https://someURL