VersionRouteAttribute.cs 719 B

123456789101112131415161718192021
  1. using System;
  2. using Admin.Core.Enums;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Microsoft.AspNetCore.Mvc.ApiExplorer;
  5. namespace Admin.Core.Attributes
  6. {
  7. /// <summary>
  8. /// 自定义路由 /api/{version}/[controler]/[action]
  9. /// </summary>
  10. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
  11. public class VersionRouteAttribute : RouteAttribute, IApiDescriptionGroupNameProvider
  12. {
  13. public string GroupName { get; set; }
  14. public VersionRouteAttribute(ApiVersion version, string actionName = "") : base($"/api/{version.ToString()}/[controller]/{actionName}")
  15. {
  16. GroupName = version.ToString();
  17. }
  18. }
  19. }