ApiInfoController.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. using Attribute;
  2. using Common;
  3. using Dto;
  4. using Vo;
  5. using Enums;
  6. using Filters;
  7. using Infrastructure;
  8. using Infrastructure.Model;
  9. using Mapster;
  10. using Microsoft.AspNetCore.Mvc;
  11. using Middleware;
  12. using Model;
  13. using Services;
  14. using Model.Base;
  15. namespace Controllers.Admin
  16. {
  17. /// <summary>
  18. /// ApiInfo)Controller
  19. /// </summary>
  20. // [Route("ApiInfo")]
  21. // [ApiExplorerSettings(GroupName = "ApiInfo")]
  22. public class ApiInfoController : BaseController
  23. {
  24. /// <summary>
  25. /// api分组接口
  26. /// </summary>
  27. private readonly IApiInfoService _ApiInfoService;
  28. private readonly IApiGroupService _ApiGroupService;
  29. public ApiInfoController(IApiInfoService ApiInfoService, IApiGroupService ApiGroupService)
  30. {
  31. _ApiInfoService = ApiInfoService;
  32. _ApiGroupService = ApiGroupService;
  33. }
  34. /// <summary>
  35. /// api接口列表
  36. /// </summary>
  37. /// <param name="parm">请求参数</param>
  38. /// <returns>api接口列表</returns>
  39. [HttpGet]
  40. [Route("/v1/api/ApiInfo/list")]
  41. public IActionResult List([FromQuery] PagerInfo page, [FromQuery] ApiInfoListDto parm)
  42. {
  43. var response = _ApiInfoService.List(page, parm);
  44. return SUCCESS(response);
  45. }
  46. /// <summary>
  47. /// api接口详情
  48. /// </summary>
  49. /// <param name="parm">请求参数</param>
  50. /// <returns>api接口详情</returns>
  51. [HttpGet]
  52. [Route("/v1/api/ApiInfo/query")]
  53. public IActionResult Query([FromQuery] ApiInfoQueryDto parm)
  54. {
  55. var response = _ApiInfoService.Queryable()
  56. .First(x => x.id == parm.id)
  57. .Adapt<ApiInfoQueryVo>() ?? new ApiInfoQueryVo();
  58. return SUCCESS(response);
  59. }
  60. [HttpGet]
  61. [Route("/noauth/api/queryByKey")]
  62. public ApiInfoByKeyVo queryByKey([FromQuery] ApiInfoByKeyDto parm)
  63. {
  64. var apiInfo = _ApiInfoService.GetFirst(m => m.apiKey == parm.apiKey) ?? new ApiInfo();
  65. var apiGroup = _ApiGroupService.GetFirst(m => m.id == apiInfo.groupId) ?? new ApiGroup();
  66. return new ApiInfoByKeyVo()
  67. {
  68. apiName = apiInfo.apiName,
  69. apiKey = apiInfo.apiKey,
  70. apiGroupName = apiGroup.groupName,
  71. };
  72. }
  73. /// <summary>
  74. /// api接口添加
  75. /// </summary>
  76. /// <param name="parm">请求参数</param>
  77. /// <returns>api接口添加</returns>
  78. [HttpPost]
  79. [Route("/v1/api/ApiInfo/add")]
  80. public IActionResult Add([FromBody] ApiInfoAddDto parm)
  81. {
  82. var modal = parm.Adapt<ApiInfo>().ToCreate(HttpContext);
  83. var response = _ApiInfoService.Add(modal);
  84. return SUCCESS(response);
  85. }
  86. /// <summary>
  87. /// api接口设置版本号
  88. /// </summary>
  89. /// <param name="parm">请求参数</param>
  90. /// <returns>api接口设置版本号</returns>
  91. [HttpPut]
  92. [Route("/v1/api/ApiInfo/setVersion")]
  93. public IActionResult SetVersion([FromBody] ApiInfoSetVersionDto parm)
  94. {
  95. var modal = parm.Adapt<ApiInfo>().ToUpdate(HttpContext);
  96. var response = _ApiInfoService.Update(modal, true);
  97. return SUCCESS(response);
  98. }
  99. /// <summary>
  100. /// api接口删除
  101. /// </summary>
  102. /// <param name="Id">ID</param>
  103. /// <returns>api接口删除</returns>
  104. [HttpDelete]
  105. [Route("/v1/api/ApiInfo/delete/{id}")]
  106. public IActionResult Delete(int id)
  107. {
  108. var response = _ApiInfoService.Delete(id);
  109. return SUCCESS(response);
  110. }
  111. /// <summary>
  112. /// api接口修改
  113. /// </summary>
  114. /// <param name="parm">请求参数</param>
  115. /// <returns>api接口修改</returns>
  116. [HttpPut]
  117. [Route("/v1/api/ApiInfo/update")]
  118. public IActionResult Update([FromBody] ApiInfoUpdateDto parm)
  119. {
  120. var modal = parm.Adapt<ApiInfo>().ToUpdate(HttpContext);
  121. var response = _ApiInfoService.Update(modal, true);
  122. return SUCCESS(response);
  123. }
  124. /// <summary>
  125. /// api接口设置请求地址
  126. /// </summary>
  127. /// <param name="parm">请求参数</param>
  128. /// <returns>api接口设置请求地址</returns>
  129. [HttpPut]
  130. [Route("/v1/api/ApiInfo/setRouter")]
  131. public IActionResult SetRouter([FromBody] ApiInfoSetRouterDto parm)
  132. {
  133. var modal = parm.Adapt<ApiInfo>().ToUpdate(HttpContext);
  134. var response = _ApiInfoService.Update(modal, true);
  135. return SUCCESS(response);
  136. }
  137. }
  138. }