【问题标题】:API requester generation using z/OS Connect build toolkit使用 z/OS Connect 构建工具包生成 API 请求者
【发布时间】:2020-04-06 13:25:20
【问题描述】:

虽然我们使用 zconbt 命令行工具和 API 规范文件生成 API 请求者工件,但 zconbt 不会为多个错误响应生成副本。假设在 API swagger 文件中,我们为 HTTP 代码 200、400、500 定义了响应模式,其中每个响应的响应模式定义都不同。现在,如果我们使用 zconbt 生成 copybooks,zconbt 会忽略 400 和 500 的响应模式,并且只为 200 代码生成响应 copybook 结构。现在,当我们从 MF 调用此 API 并获得状态代码为 400 的响应和响应消息(根据 400 的 swagger 中定义)时,zcee 无法转换并将消息以适当的 copybook 变量发送回 MF。这是因为 400 的响应模式已经被 zconbt 首先忽略了。 所以我的问题是我们是否有解决方法来处理这种类型的场景,在这种场景中,我们需要通过 cobol copybooks 提供所有错误响应模式来处理错误响应。

【问题讨论】:

  • 您是否通过他们的支持渠道询问过供应商?
  • 还没有..他们已经为此注册了一些支持案例..但那里没有适当的状态

标签: zos zos-connect-ee


【解决方案1】:

正如您所说,z/OS Connect EE 中的 API 请求器功能仅针对 API 调用的成功案例提供 JSON 到 COBOL 的转换。

如果 API 调用以非成功案例完成,则响应信息将按原样返回 BAQ-RESPONSE-API 结构。

根据Knowledge Center 中的示例,您可以按如下方式处理这些响应:

WHEN BAQ-ERROR-IN-API 
    EVALUATE BAQ-STATUS-CODE 
        WHEN 400
            DISPLAY "Invalid Pet ID"
        WHEN 500
            DISPLAY "No pet found with ID "
        WHEN OTHER
            DISPLAY "API returned error " 
                BAQ-STATUS-CODE
    END-EVALUATE

JSON 响应在 BAQ-STATUS-MESSAGE 字段中可用,如果需要,可以使用 COBOLPL/I 中的 JSON 支持进行解析。

【讨论】:

  • BAQ-STATUS-MESSAGE 字段,如果需要,可以使用 COBOL 或 PL/I 中的 JSON 支持进行解析...您能否详细说明 COBOL 中的 JSON 支持是什么意思?
  • 我已经更新了答案以包含解释在 COBOL 和 PL/I 中使用 JSON 的链接,希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2015-02-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多