首页 > 解决方案 > 如何在 swagger yaml 中为 Swagger dode 生成提供通用返回类型?

问题描述

如果通过 swaggercodegen 生成的相同休息方法失败,我必须返回 GetPaymentRepsonse 和 AuthenticationException。

我有一个解决方案

default ResponseEntity<?> getPayment(String id,
      String agent,
      String contact,
      String token) {

    return new ResponseEntity<PaymentResponse>(HttpStatus.OK);
  }
@Override public ResponseEntity<?> getPayment(String id, String agent, String contact, String token) {

    try {
          ........
           ..........
         return paymentReposne;
      } else {
        throw new AuthenticationException(Enum.SomeException);
      }

    } catch (AuthenticationException | IOException | TokenServiceException e) {
      return UtilClass.someCustomAuthenticationException(e);
    }
  }

招摇设计

/v2.0/.../.../....:
    get:
      operationId: getPayment
      tags:
        - something
      description:
        xxx xxx xxx xxxx 
      parameters:
        - $ref: "#/parameters/token"
        - $ref: "#/parameters/id"
        - $ref: "#/parameters/agent"
        - $ref: "#/parameters/contact"

      responses:
        '200':
          description: 'Successful response'
          schema:
            type: object --->Here i want to give Generic type or ? to support my above code on swagger code generation
        '400':
          description:  'Bad request parameters'

标签: javayamlswagger

解决方案


您可以执行以下操作:-

get:
  operationId: getPayment
  tags:
    - something
  description:
    xxx xxx xxx xxxx 
  parameters:
    - $ref: "#/parameters/token"
    - $ref: "#/parameters/id"
    - $ref: "#/parameters/agent"
    - $ref: "#/parameters/contact"

  responses:
            '200':
                description: Fetched Successfully
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ResponseEntity'
            '400':
                $ref: '#/components/responses/AuthenticationException'

components:
  schemas:
      ErrorResponse:
        type: object
        properties:
            statusCode:
                type: integer
                example: 400
            message:
                type: string

  responses:
    AuthenticationException:
        description: The specified resource was not found
        content:
            application/json:
                schema:
                    $ref: '#/components/schemas/ErrorResponse'

推荐阅读