【发布时间】:2023-02-22 08:20:07
【问题描述】:
我的问题与this (details here on Github) 基本相同,但是对于 C# 客户端 - [FromForm] SomeObject x 在控制器上有一些可为 null 的(可选)参数,并且 Nswag 生成的生成的客户端有空检查,如下所示:
public virtual async System.Threading.Tasks.Task<Attachment> UploadAsync(int? idProject = null, int? idTicket = null...
...
if (idProject == null) throw new System.ArgumentNullException("idProject");
else
{
content_.Add(new System.Net.Http.StringContent(ConvertToString(idProject, System.Globalization.CultureInfo.InvariantCulture)), "IdProject");
}
...
原始模型(来自 API 项目)和在客户端项目中生成的模型都将这些字段作为可为空的,并且函数调用接受可为空的值。
来自 swagger 的 JSON 模式如下所示:
"/Attachment/Upload": {
"post": {
"tags": [
"Attachment"
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"Name"
],
"type": "object",
"properties": {
"IdProject": {
"type": "integer",
"format": "int32"
},
"IdTicket": {
"type": "integer",
"format": "int32"
},...
我试过在 openApiToCSharpClient 中设置 "queryNullValue": "" 但它没有帮助。如何在生成的客户端中禁用这些检查?我必须使用[FromForm],因为我要同时发送文件和一些附加数据。
【问题讨论】:
标签: c# asp.net-core openapi nswag