我使用NSwag
生成TypeScript代码。当我在Web API中使用可为null的int时,生成的nswag代码将发送null。
如何防止NSwag
生成此代码或允许.NET Core 3.1将其接受为有效值?
http://localhost:4000/api/SurveyManagement/UpdateRouteSurvey?toSurveyId=null
生成的TypeScript代码:
updateRouteSurvey(toSurveyId: number | null): Observable<void> {
let url_ = this.baseUrl + "/api/SurveyManagement/UpdateRouteSurvey?";
if (toSurveyId === undefined)
throw new Error("The parameter 'toSurveyId' must be defined.");
else
url_ += "toSurveyId=" + encodeURIComponent("" + toSurveyId) + "&";
url_ = url_.replace(/[?&]$/,"");
...
C#API接口
[HttpPost(nameof(UpdateRouteSurvey))]
public async Task UpdateRouteSurvey(int? toSurveyId) =>
await _manageSurveyService.UpdateRouteSurvey(toSurveyId);
NSwag配置
"openApiToTypeScriptClient": {
"classname": "{controller}Client","moduleName": "","namespace": "","typeScriptVersion": 2.7,"template": "Angular","promiseType": "Promise","httpClass": "HttpClient","useSingletonProvider": false,"injectionTokenType": "InjectionToken","rxJsVersion": 6.0,"dateTimeType": "Date","nullValue": "Null","generateclientClasses": true,"generateclientInterfaces": false,"generateOptionalParameters": false,"exportTypes": true,"wrapDtoExceptions": false,"exceptionClass": "SwaggerException","clientBaseclass": null,"wrapResponses": false,"wrapResponseMethods": [],"generateResponseclasses": true,"responseclass": "SwaggerResponse","protectedMethods": [],"configurationClass": null,"useTransformOptionsMethod": false,"useTransformResultMethod": false,"generateDtoTypes": true,"operationGenerationmode": "MultipleclientsFromOperationId","markOptionalProperties": false,"generatecloneMethod": false,"typeStyle": "Interface","classTypes": [],"extendedClasses": [],"extensionCode": null,"generateDefaultvalues": false,"excludedTypeNames": [],"excludedParameterNames": [],"handleReferences": false,"generateConstructorInterface": true,"convertConstructorInterfaceData": false,"importRequiredTypes": true,"useGetBaseUrlMethod": false,"baseUrlTokenName": "API_BASE_URL","queryNullValue": "","inlineNamedDictionaries": false,"inlineNamedAny": false,"templateDirectory": null,"typeNameGeneratorType": null,"propertyNameGeneratorType": null,"enumNameGeneratorType": null,"servicehost": null,"serviceSchemes": null,}