![](/img/trans.png)
[英]Prevent openapi-generator renaming enums in JavaScript/TypeScript
[英]openapi-generator can't handle status code 204
使用 npm package "@openapitools/openapi-generator-cli": "^2.4.25",
當我的 Z8A5DA52ED12644727D359E70C0A58 返回狀態代碼時,我收到Json-Parse
-Error。
查看生成的代碼return new runtime.JSONApiResponse(response, (jsonValue) => TaskFromJSON(jsonValue));
總是為所有響應的狀態代碼調用。
如何在不更改生成代碼的情況下解決此問題?
async getTasksRaw(requestParameters: GetTaskByIdRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Task>> {
if (requestParameters.taskId === null || requestParameters.taskId === undefined) {
throw new runtime.RequiredError('taskId','Required parameter requestParameters.taskId was null or undefined when calling getTaskById.');
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
const response = await this.request({
path: `/tasks/{taskId}`.replace(`{${"taskId"}}`, encodeURIComponent(String(requestParameters.taskId))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => TaskFromJSON(jsonValue));
}
好的,目前我通過以下中間件修復了它:
import { HttpExceptionFromJSON, Middleware, ResponseContext } from './my-client';
/**
* Workaround
*/
export default class NoContentMiddleware implements Middleware {
public post?(context: ResponseContext): Promise<Response | void> {
if (context.response.status === 204) {
throw {
status: 204
};
}
return Promise.resolve(context.response);
}
}
然后我將中間件注入客戶端:
const config = new Configuration({
basePath: apiGateway + '/api/myapi',
middleware: [new NoContentMiddleware()]
});
使用客戶端:
public async test(){
try{
var myentity = await this.callAPI();
catch(e:any){
switch(e.status){
case 204:
console.log("no content");
break;
default:
console.log("unexpected error");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.