我正在将 swagger 与 .net core 一起使用,我想知道是否可以拆分 2 组或多组可通过不同 url 访问的 swagger 文档。这里不讨论版本控制。
举个例子,如果我有一个用于移动应用程序、网络应用程序的 API,还有一个用于我的客户的 API。我想将它们分别分开,并仅添加对移动和 Web api 的授权,而不是对客户端的授权。我有这个想法将各自的 api 分离到区域,但我仍然不知道如何将其拆分为 swagger 文档。
我知道可以获得相同结果的唯一方法是将其拆分为单独的项目。
任何其他解决此问题的想法都非常受欢迎。谢谢。
我正在自定义用户名的验证以允许相同的用户名(非唯一)。这是带有附加字段“已删除”作为对身份用户的软删除。因此,自定义涉及更改当前验证以检查用户名是否已存在,并且已删除是否为 false 以仅触发 DuplicateUserName 错误。
我所做的是创建一个 CustomUserValidator 类,并覆盖 UserValidator.cs 中的 ValidateAsync 方法以及 ValidateUserName 方法。下面是代码:
自定义用户验证器.cs
public class CustomUserValidator<TUser> : UserValidator<TUser>
where TUser : ApplicationUser
{
public override async Task<IdentityResult> ValidateAsync(UserManager<TUser> manager, TUser user)
{
if (manager == null)
{
throw new ArgumentNullException(nameof(manager));
}
if (user == null)
{
throw new ArgumentNullException(nameof(user));
}
var errors = new List<IdentityError>();
await ValidateUserName(manager, user, errors);
if (manager.Options.User.RequireUniqueEmail)
{
await ValidateEmail(manager, user, errors);
}
return errors.Count > 0 ? IdentityResult.Failed(errors.ToArray()) : IdentityResult.Success;
}
private async …Run Code Online (Sandbox Code Playgroud) 在最新的.NET Core 2.1中,引入了模型状态验证的自动验证(https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap /#mvc).
以前我可以通过以下代码覆盖验证错误响应:
public class ApiValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
context.Result = new BadRequestObjectResult(new context.ModelState);
}
base.OnActionExecuting(context);
}
Run Code Online (Sandbox Code Playgroud)
但现在它已经不再适用了.无需输入覆盖方法即可响应验证错误.
有人有任何线索吗?谢谢.