Manweill / swagger-axios-codegen

swagger client to use axios and typescript
MIT License
306 stars 83 forks source link

Feature request: allow configuration of response, only data, or AxiosResponse<data> #143

Open wimdetroyer opened 3 years ago

wimdetroyer commented 3 years ago

Currently, all responses are automatically resolved to axios.response.data, however, sometimes it is useful to have the wrapping AxiosResponse:

export interface AxiosResponse<T = any>  {
  data: T;
  status: number;
  statusText: string;
  headers: any;
  config: AxiosRequestConfig;
  request?: any;
}

For example: say I make a PUT request to create an entity, my API will return a status code 201 with a HTTP location header filled in like: www.example.com/api/v1/entity/123. Having access to this header would make my life a bit easier, however, only the response data is returned now.

I understand this might be an edge case and for 99% of requests, simply returning the data itself is sufficient, but allowing configuration of this might be interesting.

Something like:

export interface ISwaggerOptions = {
 [...]
  methodReturnsWrappedInAxiosResponse: boolean; // Default: false
}
Manweill commented 3 years ago

it mean , you need full axios response?

wimdetroyer commented 3 years ago

@Manweill Yes.

Manweill commented 3 years ago

144