我有一个API控制器MemberController
:
x1c 0d1x的数据
我在项目的Models
文件夹中有一个Member
模型类:
public class Member
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string Phone { get; set; } = string.Empty;
public string Mobile { get; set; } = string.Empty;
public DateTime DateOfBirth { get; set; } = DateTime.MinValue;
public MemberType MemberType { get; set; } = MemberType.Player;
public MemberStatus MemberStatus { get; set; } = MemberStatus.Created;
public DateTime RegistrationDate { get; set; } = DateTime.UtcNow;
}
字符串
我在项目的ApiModel
文件夹中还有一个view model / Dto类:
namespace bengalfc.API.ApiModel
{
public class CreateMember
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
}
}
型
我在我的项目中使用Entity Framework来更新数据库结构。Member
模型是我的Member
表在数据库中的反映。最初,当使用Member
模型作为CreateMember
方法的参数时,我得到了一个错误,说某些字段是必需的,我不想通过使用数据注解来解决这个错误,而是选择在ApiModel
文件夹中创建一个名为CreateMember
的DTO或视图模型。
到目前为止,我的Swagger可以完美地加载API文档,但是当我开始在CreateMember
方法中使用CreateMember
模型时;斯瓦格抱怨道
SwaggerGeneratorException:无法为类型-bengalfc. API. Models. CreateMember生成架构。
在这种情况下,如何在控制器操作中使用视图模型或DTO,或者对于这种场景,什么是理想的解决方案?
1条答案
按热度按时间q3qa4bjr1#
在属性类datatype之前使用
[FromBody]
,如下面的代码所示,它可以帮助您创建swagger
文档。字符串
如上所示,不需要从
.Net Core 5
创建构造函数和注入接口,您可以使用[FromServices]
。如果您在PUT方法中使用Route参数,则可以使用[FromRoute]
,如下所示型