我使用 [FromForm] 注释来绑定多部分/表单数据模型。 但是当 swagger 生成 swagger.json 时,它会跳过必需的字段。
这会导致它在打字稿中错误生成接口,放置应该需要的可选属性。
有人帮忙吗?
班级:
[Required]
public string Name { get; set; }
[Required]
public string Abbreviation { get; set; }
[Required]
public DateTime DateOfFundation { get; set; }
Swagger.json:
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"Name": {
"type": "string",
"nullable": true
},
"Abbreviation": {
"type": "string",
"nullable": true
},
"DateOfFundation": {
"type": "string",
"format": "date-time"
}
...
您可以像这样使用
NJsonSchema.Annotations.NotNullAttribute
:
using NJsonSchema.Annotations;
public class MyClass
{
[NotNull]
public string Name { get; set; }
}
public class MyController
{
[HttpPost(...)]
public async Task<Unit> MyEndpoint([FromForm] MyClass request)
{
...
}
}
为什么 NSwag 不支持
[Required]
我无法理解,但这从我的 swagger.json 架构中删除了 "nullable": true
。