REST 应用程序属性

Jmix REST 应用程序属性支持配置通用 REST 不同方面的行为。

实体 API

jmix.rest.default-max-fetch-size

定义 API 返回实体实例数量的默认最大值。

默认值:10000

jmix.rest.entity-max-fetch-size

定义 API 返回特定实体实例数量的默认最大值。

下面示例中,为两个实体配置了 entityMaxFetchSize。所有其他实体则会使用 jmix.rest.default-max-fetch-size 配置的值。

jmix.rest.entity-max-fetch-size.sample_Product = 500
jmix.rest.entity-max-fetch-size.sample_Customer = 1000

jmix.rest.json-transformation-config

定义包含一组 JSON 转换配置的文件,由 REST API 在客户端需要某些特定版本格式的数据时使用。

通过 Resources 接口加载,因此文件可位于 classpath 或者配置文件夹中。

默认值:none

jmix.rest.max-upload-size

定义 REST API 支持上传的文件大小的最大值(单位为字节)。

默认值:20971520(20 MB)

jmix.rest.optimistic-locking-enabled

如果 JSON 中提供了 version 属性,则启用实体乐观锁。

默认值:false

jmix.rest.queries-config

定义包含 JPQL 查询语句的文件,JQPL 查询语句用于 实体 API

jmix.rest.queries-config = rest/sample/rest-queries.xml

通过 Resources 接口加载,因此文件可位于 classpath 或者配置文件夹中。

默认值:none

jmix.rest.services-config

定义包含一组服务方法的文件,这些服务方法开放为 服务 API

jmix.rest.services-config = rest/sample/rest-services.xml

通过 Resources 接口加载,因此文件可位于 classpath 或者配置文件夹中。

默认值:none

jmix.rest.response-fetch-plan-enabled

如果设置为 true,则可以在创建和更新请求中使用 responseFetchPlan 参数指定 fetch plan 名称。此时,创建/更新后的实体使用参数指定的 fetch plan 加载后以 JSON 格式返回。

如果设置为 false,返回体仅包含创建/更新后实体的最简单内容。

默认值:true

安全

jmix.rest.anonymous-url-patterns

定义一组由逗号分隔的 URL patterns,这些 URL 支持 匿名访问

默认值:none

jmix.rest.authenticated-url-patterns

定义一组由逗号分隔的 自定义控制器 URL patterns,这些 URL 需要标准的 OAuth2 认证。

默认值:none

jmix.security.oauth2.client-id

定义一个 REST API 客户端的标识符。这里,客户端并非只平台的用户,而是一个使用 REST API 的应用程序(例如,门户或手机 App)。客户端凭证用在访问 REST API token 接口时做基本认证。

默认值:client

这个值需要改成针对应用程序的随机字符串,最好是长一些不容易被猜到的。

jmix.security.oauth2.client-secret

定义 REST API 客户端的密码。这里,客户端并非只平台的用户,而是一个使用 REST API 的应用程序(例如,门户或手机 App)。客户端凭证用在访问 REST API token 接口时做基本认证。

该应用程序属性除了实际的密码值(例如,secret)外,还需要包含一个密码加密器(Password Encoder)的标识符(例如,{noop})。关于密码加密器的更多信息,请参阅 Spring Security 文档

当发送获取 token 的请求时,不能带有密码加密器标识符。请求中应该仅包含 secret

默认值:{noop}secret

这个值需要改成针对应用程序的随机字符串,最好是长一些不容易被猜到的。

jmix.security.oauth2.client-authorized-grant-types

支持的授权类型。

默认值:password,external,refresh_token

jmix.security.oauth2.client-token-expiration-time-sec

Access token 的有效期,单位为秒。

默认值:43200(12 小时)

jmix.security.oauth2.client-refresh-token-expiration-time-sec

Refresh token 的有效期,单位为秒。

默认值:31536000(365 天)

jmix.security.oauth2.dev-mode

开发模式下,支持无需通过 token 访问 REST API。开发模式支持的免登录用户列表通过 jmix.security.oauth2.dev-username 属性配置。

默认值:false

jmix.security.oauth2.dev-username

开发模式下的 username 列表。参考 jmix.security.oauth2.dev-mode

jmix.security.oauth2.token-masking-enabled

设置为 true 时,应用程序日志中会对 token 进行掩码处理。

默认值:true

jmix.security.oauth2.reuse-refresh-token

是否可以重用未失效的 refresh token。

默认值:true

jmix.security.oauth2.support-refresh-token

是否支持 refresh token。

默认值:true