2

在 APEX restful 服务中,如果我使用 sql 查询选择 GET 方法,所有参数都进入 url 字符串。这意味着最终用户可以自己更改参数...所以我应该使用带有 pl/sql 块的 POST。但是我怎样才能从这个方法返回数据呢?在 GET 我有类似的查询

SELECT *
FROM table
WHERE id = :PARAM

在 POST 中它变成了???

DECLARE
BEGIN
SELECT *
FROM table
WHERE id = :PARAM
END;

我在文档中找不到任何有用的东西,只有 GET 方法。

4

1 回答 1

5

我知道这是一个老问题,但我最近遇到了同样的问题,我自己找到了解决方案。

也许我的解决方案对你有用。我将 apex 与PL/JSON结合使用,在 pl/SQL 中生成和解析 JSON 对象。当我在 rest webservices 中使用 post 方法时,我在资源处理程序的源代码中执行以下操作:

declare
output json;

begin

apex_plugin_util.print_json_http_header;
output:= test_function(:INPUT_JSON_STRING);
sys.htp.p(output.to_char);

end;

然后,在我的 PL/SQL 函数中:

CREATE OR REPLACE FUNCTION test_function (INPUT_JSON_STRING VARCHAR2)
 RETURN JSON
IS

my_json json;

aux_string varchar2;

BEGIN

my_json :=json(INPUT_JSON_STRING);

aux_string:=my_json.get ('something').get_string;

(...)

RETURN my_json;

EXCEPTION

END test_function;

我的博客中有一个更详细的示例,但它是西班牙语的,抱歉。

希望这可以帮助。

于 2013-10-29T07:39:26.883 回答