设为首页 加入收藏

TOP

Jmix 中 REST API 的两种实现(二)
2023-07-23 13:41:47 】 浏览:30
Tags:Jmix REST API
m Double price) throws Throwable { if (price < 0) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "价格参数必须大于 0"); // 自定义控制器层的参数检查,抛出请求异常。 } return productService.getProductsCheaperThan(price); } }

Jmix 中的控制器接口默认都是匿名的,但是为匿名用户配置能访问实体信息又不够安全,Jmix 提供了一个应用程序属性,支持使用 Jmix 安全机制对自定义控制器进行保护:

# 支持逗号分隔的多个 pattern
jmix.rest.authenticatedUrlPatterns=/products/**

然后,重启服务就可以通过 Postman 进行调用。注意,这里的 URL 与服务 URL 不同,直接使用了控制器中定义的路径:

Postman 调用控制器 API

结论

通过上面的代码,我们可以看到,在 Jmix 中使用两种类型的 REST API 其实都不复杂,但是,也是各有优势:

Jmix 服务 API

  • 不用编写控制器代码,仅通过 XML 配置即可使用
  • 默认使用 Jmix 的安全机制
  • 可以使用 Fetch plan 定义返回实体的字段

Spring 控制器

  • 更加灵活,可以使用 Spring 控制器自定义 HTTP 状态码、响应类型或者异常错误
  • 除了使用服务层的实体控制外,还可以在控制器层使用自定义的 DTO 对返回实体的信息做进一步控制

因此,在大多数情况下,我们仅使用 Jmix 的服务 API 就能够满足使用要求。针对部分复杂场景可以使用 Spring 控制器 API。

文中使用的 Jmix 版本:1.3.1

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇 HashMap源码,看我这篇就够了 下一篇day43-反射02

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目