Skip to content

[route generation] multiple response type cases #318

@paztis

Description

@paztis

I've got a request the has 2 different return types: one on status 200 and another one on status 201

paths:
  /hello:
    get:
      tags:
        - "Hello Api"
      operationId: sayHello
        
      responses:
        200:
          schema:
            $ref: "#/definitions/Hello"
        201:
          schema:
            $ref: "#/definitions/User"
        400:
          $ref: "#/responses/400-BadRequest"
        401:
          $ref: "#/responses/401-Unauthorized"
        404:
          $ref: "#/responses/404-NotFound"
        500:
          $ref: "#/responses/500-InternalServerError"
        default:
          $ref: "#/responses/500-InternalServerError"

It generated me this namespace


export namespace Hello {
  /**
   * @tags Hello Api
   * @name SayHello
   * @request GET:/hello
   * @response `200` `Hello`
   * @response `201` `User`
   * @response `400` `Error`
   * @response `401` `Error`
   * @response `404` `Error`
   * @response `500` `Error`
   * @response `default` `Error`
   */
  export namespace SayHello {
    export type RequestParams = {};
    export type RequestQuery = {};
    export type RequestBody = never;
    export type RequestHeaders = {};
    export type ResponseBody = Hello;
  }
}

I think the correct response body is ResponseBody = Hello | User; as we cans return the 2 types

Also in case want to return an error, how is it supposed to work ? the error cases are only refered in @response decorator

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions