我们有一个api,我们正在对其进行完整性检查。 即检查允许请求操作的客户端以获取信息。 现在,我们正在为每个端点实现跨团队的验证属性,这是非常痛苦的。 每个参数签名不同的方法签名(即一个是某种类,一个是ID字符串)会创建一个新属性,现在我们拥有大量的属性来检查每个请求的完整性,并且如果涉及到某人,我们会碰撞代码创建了该属性,但未将其合并到开发人员中,我们无法得知。 另外,我们需要一种方法(现在是单元测试)来检查此检查是否覆盖了所有mvc方法。 有没有有效的一般方法和更集中的方法来做到这一点?
希望您的评论在这里是一些示例代码-
我的建议是在一个验证服务中使用反射。 或根本不使用属性,而只是使用通用类,但这并不强制
[DashboardActionValidation(eDashboardActions.ViewAccountStatements)] 公共类someController:basecontroller { 私有只读IValidationService _someService;
public someController (IAccountStatementService accountStatementService, IValidationService _omeService, validationService) : base(validationService)
{
}
[HttpPost]
[SomeIntegrityCheck("model")]
public ActionResult GetAll(AccountStatementRequestModel model)
{
return new JsonNetResult(_someService.GetSomeResultToClient(model));
}
}
就像我说的那样,我想要一种有效的方法来在公司所有开发的API代码中强制执行此操作。