【发布时间】:2020-12-25 22:47:20
【问题描述】:
我需要以 JSON 格式将 SQL 查询发送到 REST API,它适用于简单查询,但我正在尝试将 WHERE 子句与 IN 运算符一起使用。如果我对值进行硬编码,它可以在 Postman 中工作,但是当我将 Input 数组传递给 IN 运算符时,它似乎没有按预期工作。
var servers = ['Server-1','Server-2'];
var requestBody = {};
requestBody.Script = 'SELECT ID, NAME, FQDN FROM SERVER WHERE Name IN ('+servers+')';
gs.log("Advanced Request3 Body: "+JSON.stringify(requestBody));
这是输出:
{"Script":"SELECT ID, NAME, FQDN FROM SERVER WHERE Name IN (Server-1,Server-2)"}
这是预期的输出:如果传递数组有任何问题,任何人都可以帮忙。
{"Script":"SELECT ID, NAME, FQDN FROM SERVER WHERE Name IN ('Server-1','Server-2')"}
【问题讨论】:
-
那么您需要转义您在该字符串中插值的值。但真正的 API(我不会将其称为“REST”)绝对不应该接受 SQL。这不仅仅是SQLI,它只是一扇敞开的前门。
-
我正在调用云中心化端点来获取服务器详细信息“/Redrock/query”,其中有效负载应该有查询以返回结果。
标签: javascript json rest