redfish PATCH接口能否实现比GET的响应体多返回参数

// 此模板仅供参考,如果不适用可以修改

问题描述

[在这里详细描述您遇到的问题]
我有一个redfish接口,支持PATCH和GET,patch仅调用方法,这个方法会返回一个Result,0成功,1失败

我想在调用PATCH时在响应体返回一个Status,而直接调用Get则不返回Status。
这种目前能实现吗

环境信息

  • 操作系统:Ubuntu 24.04

  • 软件版本:OpenUBMC2509

  • 硬件配置:[如 CPU、内存等]

重现步骤

  1. [第一步]

  2. [第二步]

  3. [第三步]

期望结果

[您希望实现什么]

实际结果

[实际发生了什么,包含错误信息]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

当前不支持。

想到2种思路

  1. 组件中新增一个属性表示LastSetStatus 值有0成功,1失败,255默认值
    patch调用设置方法->未抛错->调用Get,如果255转换为cjson.null,如果为0,或者1直接赋值给响应体 ,然后设置为255

直接调用Get,每次属性值必然是255,所以不会在直接的Get中显示
前提:组件设置失败不会抛出错误,而是返回一个状态码(0成功 1失败)

2.使用ngnix反向代理的方式

强行让PATCH接口增加参数会导致PATCH和GET得到的etag不一致。不推荐做该实现

我当前是在客户定制仓新增了个BiosOperationResult类,LastImportBiosSetupStatusBySetting(BIOS Settings PATCH 操作状态: 0-成功, 1-失败, 255-默认值(未操作),默认值为255

只执行Get时有2步操作
if 255 return lua_nil else return rspbody.Status = LastImportBiosSetupStatusBySetting
if LastImportBiosSetupStatusBySetting == (0 or 1) then LastImportBiosSetupStatusBySetting = 255
执行PATCH,插件调用bios组件的ImportBiosSetup方法,用pcall捕捉异常,路径中触发任何异常,则LastImportBiosSetupStatusBySetting赋值为1,否则赋值为0。意味着PATCH只会出现200返回码。必然调用Get。

效果:仅仅调用Get,返回体无Status
执行PATCH,返回体必然出现Status
先调用PATCH返回体有Status,再调用Get返回体无Status

@vyasa 请问下该实现方式是否会有什么缺陷