APEX RESTFUL POST方法

BeH*_*ter 2 rest restful-authentication oracle-apex

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

SELECT *
FROM table
WHERE id = :PARAM
Run Code Online (Sandbox Code Playgroud)

在POST中变成了???

DECLARE
BEGIN
SELECT *
FROM table
WHERE id = :PARAM
END;
Run Code Online (Sandbox Code Playgroud)

我找不到关于文档的任何有用信息,仅关于GET方法。

R. *_*pos 5

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

也许我的解决方案对您有用。我将apex与PL / JSON结合使用以在pl / SQL中生成和解析JSON对象。当我在其余Web服务中使用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;
Run Code Online (Sandbox Code Playgroud)

然后,在我的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;
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助。