YD_SmartSports.Api/VOL.WebApi/Controllers/ObjectActionValidatorExampleController.cs
2025-06-06 16:00:39 +08:00

111 lines
4.1 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using VOL.Core.Filters;
using VOL.Core.ObjectActionValidator;
using VOL.Entity.DomainModels;
namespace VOL.WebApi.Controllers
{
/// <summary>
///1、普通参数校验只需要标识属性[ObjectGeneralValidatorFilter(ValidatorGeneral.xxx,ValidatorGeneral.xxx)]
///需要在ValidatorGeneral枚举中添加枚举值(参数名)并在UseMethodsGeneralParameters方法中注入进去即可在任何地方重复使用
///
/// 2、model校验只需要标识属性[ObjectModelValidatorFilter(ValidatorModel.xxx)]
/// 需要在ValidatorModel枚举中添加枚举值(参数名)
/// 并在UseMethodsModelParameters方法中注入进去(注入时可以指定需要验证的字段)即可在任何地方重复使用
/// --如果其他方法使用的是同一个model但验证的字段不同在ValidatorModel重新添加一个枚举值
/// --并在UseMethodsModelParameters方法注入,添加新的指定字段即可
/// </summary>
[JWTAuthorize, ApiController]
[Route("validatorExample")]
public class ObjectActionValidatorExampleController: Controller
{
public ObjectActionValidatorExampleController()
{
}
/// <summary>
/// 验证UserName与PhoneNo为必填
/// </summary>
/// <param name="userName"></param>
/// <param name="phoneNo"></param>
/// <returns></returns>
[HttpPost, HttpGet, Route("test1")]
[ObjectGeneralValidatorFilter(ValidatorGeneral.UserName,ValidatorGeneral.PhoneNo)]
public IActionResult Test1(string userName,string phoneNo)
{
return Json("参数验证通过");
}
/// <summary>
/// 验证PhoneNo为必填
/// </summary>
/// <param name="userName"></param>
/// <param name="phoneNo"></param>
/// <returns></returns>
[HttpPost, HttpGet, Route("test2")]
[ObjectGeneralValidatorFilter(ValidatorGeneral.PhoneNo)]
public IActionResult Test2(string userName, string phoneNo)
{
return Json("参数验证通过");
}
/// <summary>
/// 验证字符长度与值大小
/// </summary>
/// <param name="userName"></param>
/// <param name="phoneNo"></param>
/// <returns></returns>
[HttpPost, HttpGet, Route("test3")]
[ObjectGeneralValidatorFilter(ValidatorGeneral.Local, ValidatorGeneral.Qty)]
public IActionResult Test3(string local, string qty)
{
return Json("参数验证通过");
}
/// <summary>
/// Login配置的规则用户名与密码必填
/// </summary>
/// <param name="loginInfo"></param>
/// <returns></returns>
[HttpPost, HttpGet, Route("Test4")]
[ObjectModelValidatorFilter(ValidatorModel.Login)]
public IActionResult Test4([FromBody]LoginInfo loginInfo)
{
return Json("参数验证通过");
}
/// <summary>
/// LoginOnlyPassWord配置的规则密码必填
/// </summary>
/// <param name="loginInfo"></param>
/// <returns></returns>
[HttpPost, HttpGet, Route("Test5")]
[ObjectModelValidatorFilter(ValidatorModel.LoginOnlyPassWord)]
public IActionResult Test5([FromBody]LoginInfo loginInfo)
{
return Json("参数验证通过");
}
/// <summary>
/// 同时验证实体LoginInfo与单个参数phoneNo
/// Login配置的规则用户名与密码必填,手机号必填
/// </summary>
/// <param name="loginInfo"></param>
/// <returns></returns>
[HttpPost, HttpGet, Route("Test6")]
[ObjectModelValidatorFilter(ValidatorModel.Login)]
[ObjectGeneralValidatorFilter(ValidatorGeneral.PhoneNo)]
public IActionResult Test6([FromBody]LoginInfo loginInfo, string phoneNo)
{
return Json("参数验证通过");
}
}
}