APEX RESTFUL POST方法

时间:2013-06-21 16:30:55

标签: rest oracle-apex restful-authentication

在APEX restful service中,如果我用sql查询选择GET方法,所有参数都会进入url字符串。这意味着最终用户可以自己更改参数...所以我应该使用带有pl / sql块的POST。但是,如何从此方法返回数据? 在GET中我有像

这样的查询
SELECT *
FROM table
WHERE id = :PARAM

在POST中它变成???

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

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

1 个答案:

答案 0 :(得分:4)

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

也许我的解决方案对您有用。我将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;

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

希望这有帮助。