acacode / acacode/swagger-typescript-api

[route generation] multiple response type cases

Open
#318 4 comments 3 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
4.1k
Forks
436
PR merge metrics
No merged PRs in 30d

Description

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

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.