json—将请求修补到JavaSpringAPI中

nwlqm0z1  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(330)

我想在openshift api中做一个补丁请求。为了更简单,我们考虑在openshift api中看到:
内容可以是:

{ 
  "limits":{ 
    "cpu":"10m"
  },
  "requests":{ 
    "memory":"1G"
  }
}

或者这个:

{ 
  "limits":{ 
    "cpu":"30m",
    "memory":"2G"
  },
  "requests":{ 
    "memory":"5G"
  }
}

或者……,你明白我的意思;)json中的键可以是也不能是。
所以现在,我想知道如何制作一个补丁,而不必知道过去是什么,因为代码只会接收新的值,不管是否为空。
我希望澄清:)我使用jdk13和spring与maven
谢谢

rta7y2nd

rta7y2nd1#

答案是:通过对包含旧日期的api创建get方法来获取旧数据。然后,我就可以知道补丁的变化了!:)

mepcadol

mepcadol2#

最合适的解决方案似乎是将您的请求作为json补丁请求。格式化文档:http://jsonpatch.com/
在我的示例中,我正在更新deploymentconfig的“image”属性,但这应该适用于其他类型的对象。请注意,每个请求可以发出多个修补程序命令,每个修补程序命令只需要知道组成要更改的路径的属性。
我的请求设置:配置文档
请求:patch/api/apps.openshift.io/v1/namespaces/$namespace/deploymentconfigs/$name
身份:无记名$代币
标题:
内容类型:application/json patch+json
接受:application/json
连接:关闭
正文:

[
    {
        "op": "replace", 
        "path": "/spec/template/spec/containers/0/image", 
        "value": "my-repo-image.url/my-image:v10"
    },
    { "op": "add", ... },
    { "op": "remove", ...},
    ...
]

相关问题