spring-boot - Springboot 通过过滤器获取动态 JSON 内容
问题描述
我的 Springboot 驱动的网络应用程序中有 json 数据资产,如下所示
webapp/asset/labels.json
webapp/asset/dept1/labels.json
webapp/asset/dept2/labels.json
在 UI 层,发生 REST 调用以获取标签 ( http://server/asset/labels.json )。现在我想动态地获取被 /dept1/labels.json 覆盖的标签 json 的内容——如果这个人属于 dept1,用 /dept2/labels.json——如果这个人属于 dept2。
标签.json
{"Foo" : "1","Bar" : "X"}
dept1/labels.json
{"Foo" : "2"}
dept2/labels.json
{"Bar" : "Y"}
调用 /asset/labels.json 时前端期望的预期 Json 内容
对于不属于 Dept1 或 Dept2 的员工
{"Foo" : "1","Bar" : "X"}
对于属于 Dept1 的员工
{"Foo" : "2","Bar" : "X"}
对于属于 Dept2 的员工
{"Foo" : "1","Bar" : "Y"}
我尝试了各种方法,但在大多数情况下,我最终为每个 API 定制了实现。我有数百个 json 需要处理,所以我想知道是否有办法提出一个可以处理所有 JSON 文件的自定义框架/实用程序。
解决方案
您将拥有一个返回正确 JSON 的 API 端点。
在 API 端点方法中,您将遵循以下步骤:
- 首先将基础 JSON 文件加载到
Map
saybaseMap
中。 - 接下来根据用户的部门,您将部门特定的 JSON 加载到另一个地图中说
deptMap
- 然后你运行这行代码:
baseMap.putAll(deptMap)
这putAll
将覆盖来自部门特定 JSON 的任何键。
注意:
将只有一个端点,该端点将根据作为查询参数传递给它的员工姓名或根据登录用户获取它来确定 Employee
推荐阅读
- r - 如何根据输入在 R 中显示可变数量的 ggplots?
- firebase-authentication - 每次用户启动应用程序时,都会要求 Flutter google firebase 登录
- swift - Firebase 存储下载在第一次运行时未通过 swift
- c# - MSFT_Volume 格式方法,在 WinPE 中
- javascript - 错误:model.execute(dict) 中提供的 dict['input'] 的形状必须为 [1,224,224,3],但为 [1,244,244,3]
- python - 熊猫合并/更新数据框
- composer-php - composer require 分支被您的约束拒绝
- python - 编程距离
- node.js - JWT 登录问题
- python - numpy溢出形状256配置