Oracle APEX 24.2 新特性 - REST数据源增强

本文翻译自:https://blogs.oracle.com/apex/post/242-rest-data-source-enhancements

新的 Oracle APEX 24.2 为 REST数据源 共享组件带来了新的增强功能。以下是新增强功能的摘要:

  • 支持“简单HTTP”REST 数据源中基于令牌的分页
  • 将排序谓词下推到“ORDS”类型的REST源时支持“Order By NULL”子句
  • 灵活的远程服务器
  • 以编程方式设置Web凭据的范围

在这篇博文中,我们将探讨它们。

支持令牌的 “简单HTTP” REST数据源

某些API支持基于令牌的分页。基于标记的分页依赖于不透明字符串,通常称为标记或光标,它充当指向下一页结果的指针。此令牌包含在JSON响应中,并在下一个API请求中作为URL参数传递以检索后续结果。

以下是基于令牌的分页 REST API 示例。它使用 cursornextCursor 进行基于标记的分页。

如果您为之前显示的基于令牌的分页 REST API 创建“简单HTTP”类型的 REST 数据源,则该数据源类型现在支持具有基于令牌的分页的 REST 服务,从而增强与使用此分页方案的API的集成。

您会注意到一个名为“页面大小和页面令牌”的新分页类型,您可以在其中定义以下参数的值:

  • 页面大小URL参数
  • 页面令牌URL参数
  • 下一页标记选择器

现在,您可以使用该REST数据源作为交互式报表组件的源,并且导航可以无缝工作。

将排序谓词下推到“ORDS”类型的 REST 源时支持“Order By NULL”子句

当将排序谓词下推到“ORDS”类型的 REST 源时,Oracle APEX 24.2 现在支持“ORDS By NULL”子句。此功能需要 ORDS 22.4 及更高版本。

此属性指定如何处理 NULL 进行排序。

可用选项包括:

  • 空值最高按升序排列,空值出现在最后。按降序排列,NULL最先出现。
  • 另一个选项Flexible。仅 ORDS 22.4 或更高版本提供的REST数据源支持此选项。

例如,如果您为REST数据源选择“Flexible”并在交互式报表中使用它,您将在“排序”选项下看到一个新的“空排序”列。此功能允许您将“Nulls Always Last”或“Nulls Always First”谓词推送到ORDS,无论排序是升序还是降序。

灵活的远程服务器

Oracle APEX 引入了灵活的远程服务器,允许在运行时动态配置REST数据源和支持REST的SQL引用的服务器端点。此功能使应用程序能够根据用户或特定环境的要求动态调整远程服务器URL,从而增强了灵活性。您可以使用PL/SQL配置过程轻松动态地派生远程服务器对象的基本URL(用于REST数据源、支持REST的SQL、身份验证),APEX根据当前应用程序、租户或环境设置调用完全动态的端点。

该功能包括两个关键亮点:

  • 动态URL替换:允许使用配置过程中定义的参数在远程服务器URL中进行运行时替换。
  • 配置过程:使开发人员能够定义PL/SQL过程或匿名块以动态生成替换参数。

示例 - 动态 URL 替换

远程服务器URL可以包含替换参数,允许在运行时使用动态值:

1
https://#host#:#port#/ords/#tenant#/api

#host#、#port##tenant# 等替换参数可以根据运行时设置动态更新。

示例 - 配置过程

以下是PL/SQL配置过程的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
procedure configure_remote_server( 
p_info IN apex_plugin.t_remote_server_info,
p_config OUT apex_plugin.t_remote_server_config
)
IS
BEGIN
p_config.base_url := 'https://#host#:#port#/ords/#workspace#/#api#';
p_config.substitutions := apex_t_varchar2();
apex_string.plist_put(p_config.substitutions, 'host', v('P65_HOSTNAME'));
apex_string.plist_put(p_config.substitutions, 'port', v('P65_PORT'));
apex_string.plist_put(p_config.substitutions, 'workspace', v('P65_WORKSPACE'));
apex_string.plist_put(p_config.substitutions, 'api', v('P65_API'));
END;

以编程方式设置 Web 凭据的范围

现在可以使用APEX_CREDENTIAL API 以编程方式设置Web凭据的“范围”。

例如,如果您有一个带有名为“oauth_web_creds”的静态ID的Web凭证,开发人员可以使用以下 PL/SQL 代码以编程方式设置范围以具有user:read权限:

1
2
3
4
5
6
begin
    apex_credential.set_scope (
        p_credential_static_id => 'oauth_web_creds',
        p_scope                => 'user:read'
);
end;

结论

从支持基于令牌的分页到支持“Order By Null”子句,将排序谓词下推到“ORDS”类型的REST源,再到提供灵活的远程服务器以编程方式设置Web凭证范围的能力,Oracle APEX 24.2 保持了向共享REST数据源添加更多功能。

本文标题:Oracle APEX 24.2 新特性 - REST数据源增强

文章作者:王方钢 / Kenny Wang

发布时间:2025年01月19日 - 23:01

最后更新:2025年01月19日 - 23:01

原始链接:https://wangfanggang.com/Oracle/Oracle-APEX/apex-242-rest-data-source-enhancements/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

王方钢 / Kenny Wang wechat
0%