RateLimitController.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Newtonsoft.Json.Linq;
  2. using Sers.Core.Module.Rpc;
  3. using Sers.Gover.Base;
  4. using Sers.Gover.RateLimit;
  5. using Sers.SersLoader;
  6. using Sers.SersLoader.ApiDesc.Attribute.Valid;
  7. using Vit.Core.Util.ComponentModel.Api;
  8. using Vit.Core.Util.ComponentModel.Data;
  9. namespace Sers.Gover.Controllers.ApiControllers
  10. {
  11. [SsStationName("_gover_")]
  12. [SsRoutePrefix("rateLimit")]
  13. public class RateLimitController : IApiController
  14. {
  15. static RateLimitMng rateLimitMng => GoverApiCenterService.Instance.rateLimitMng;
  16. /// <summary>
  17. /// 获取所有限流项目
  18. /// </summary>
  19. /// <returns></returns>
  20. [SsRoute("getAll")]
  21. [SsCallerSource(ECallerSource.Internal)]
  22. //[CallFromGover]
  23. public ApiReturn<IRateLimit[]> GetAll()
  24. {
  25. return rateLimitMng.RateLimit_GetAll();
  26. }
  27. /// <summary>
  28. /// 移除指定限流项目
  29. /// </summary>
  30. /// <returns></returns>
  31. [SsRoute("remove")]
  32. [SsCallerSource(ECallerSource.Internal)]
  33. //[CallFromGover]
  34. public ApiReturn Remove(string rateLimitKey)
  35. {
  36. rateLimitMng.RateLimit_Remove(rateLimitKey);
  37. return true;
  38. }
  39. /// <summary>
  40. /// 添加限流项目
  41. /// </summary>
  42. /// <returns></returns>
  43. [SsRoute("add")]
  44. [SsCallerSource(ECallerSource.Internal)]
  45. //[CallFromGover]
  46. public ApiReturn Add(JObject rateLimit)
  47. {
  48. return rateLimitMng.RateLimit_Add(rateLimit);
  49. }
  50. }
  51. }