如何设置 OpenAPI 重定向带有参数的响应?

问题描述 投票:0回答:2

我有一个 HTTP 302(重定向),我实现了一个新的状态参数,该参数将附加到

RedirectURL
,因此可以显示类似的消息

如果调用 URL 传递为

GET http://localhost:8080/info/status?redirectUrl=http://localhost:8080/redirect

然后它将重定向为

http://localhost:8080/redirect?status=success

它的对应物

http://localhost:8080/redirect?status=error

但是 OpenAPI 规范中如何描述这一点呢?我似乎无法在响应中使用

parameters
并发现一些使用
responseParameters
的代码,但我没有运气让它工作......甚至不知道它是否是受支持的,至少,我用这两个命令编译都没有错误

  /info/setup:
    get:
      summary: Setup Url
      description: Setup Url to create new setup. Should be retrieved from api
        apps endpoint and redirect to, not called directly by the url defined
        here
      parameters:
        - in: query
          name: installationId
          description: The installation id
          required: true
          schema:
            type: string
        - in: query
          name: redirectUrl
          description: Url to redirect back to upon finished installation
          required: true
          schema:
            type: string
      responses:
        "302":
          description: Redirect
          responseParameters:
            - in: query
              name: status
              description: the status of the instalation
              schema:
                oneOf:
                  - type: string
                    example: success
                    description: When the installation was successful
                  - type: string
                    example: error
                    description: When the installation was erroneous
          headers:
            location:
              description: Setup state based redirect
              schema:
                oneOf:
                  - type: string
                    description: If setup is done and valid for installation id, will
                      redirect to given redirect url
                  - type: string
                    description: If no setup exist for installation id, will redirect to
                      SumUp oauth page
                  - type: string
                    description: If error during authorization with SumUpl, e.g. non
                      matching editions, will redirect to a setup page for
                      further user action

出现这种情况的常见方式是什么?

我们是否应该有 2 个重定向 URL,例如

GET http://localhost:8080/info/status
   ?redirectUrl=http://localhost:8080/redirect
   &errorUrl=http://localhost:8080/redirect_error

我对这个简单的困境有点茫然,也许有人可以帮助😊

http-redirect openapi
2个回答
5
投票

是的,这是 OpenAPI 的一个恼人的问题。您无法真正显式指定重定向。

您能做的最好的事情就是在 3xx 重定向范围(301、302、303、307、308)中指定带有状态代码的响应,该响应具有“string”类型的“location”标头参数。

然后您应该添加描述和摘要 - 几乎您已经完成了。

OpenAPI规范github中有这个问题:https://github.com/OAI/OpenAPI-Specification/issues/2512

希望尽快有所行动。


0
投票

是的 openapi 不处理重定向(Arazzo 也不处理)。最近,当有人透露该项目的负责人不理解重定向

时,这是一个争论点
© www.soinside.com 2019 - 2024. All rights reserved.