using Tiobon.Core.Common.Caches; using Tiobon.Core.Model; namespace Tiobon.Core.Api.Controllers.Systems; /// /// 缓存管理 /// [Route("api/Systems/[controller]")] [ApiController, ApiExplorerSettings(GroupName = Grouping.GroupName_Assistant)] [Authorize(Permissions.Name)] public class CacheManageController : BaseApiController { private readonly ICaching _caching; public CacheManageController(ICaching caching) { _caching = caching; } /// /// 获取全部缓存 /// /// [HttpGet] public async Task>> Get() { return Success(await _caching.GetAllCacheKeysAsync()); } /// /// 获取缓存 /// /// [HttpGet("{key}")] public async Task> Get(string key) { return Success(await _caching.GetStringAsync(key)); } /// /// 新增 /// /// [HttpPost] public async Task Post([FromQuery] string key, [FromQuery] string value, [FromQuery] int? expire) { if (expire.HasValue) await _caching.SetStringAsync(key, value, TimeSpan.FromMilliseconds(expire.Value)); else await _caching.SetStringAsync(key, value); return Success(); } /// /// 删除全部缓存 /// /// [HttpDelete] public async Task Delete() { await _caching.RemoveAllAsync(); return Success(); } /// /// 删除缓存 /// /// [Route("{key}")] [HttpDelete] public async Task Delete(string key) { await _caching.RemoveAsync(key); return Success(); } }