API는 정수 변수를 사용할 수 없으며 정적 정수만 사용할 수 있습니다.

API는 정수 변수를 사용할 수 없으며 정적 정수만 사용할 수 있습니다.

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

관련 정보