帮我写一个,计算接口访问次数的接口
时间: 2023-12-03 22:02:29 浏览: 27
好的,根据您的要求,我可以帮您提供以下 .NET Core 的代码示例:
```csharp
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Distributed;
using System;
namespace YourAppNamespace.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class CounterController : ControllerBase
{
private readonly IDistributedCache _cache;
public CounterController(IDistributedCache cache)
{
_cache = cache;
}
[HttpGet]
public IActionResult Get()
{
string cacheKey = "ApiAccessCounter";
int counter = 0;
// try to get counter from cache
var cachedValue = _cache.GetString(cacheKey);
if (cachedValue != null && int.TryParse(cachedValue, out counter))
{
counter++;
}
else
{
counter = 1;
}
// save counter to cache
var options = new DistributedCacheEntryOptions()
.SetAbsoluteExpiration(TimeSpan.FromMinutes(10));
_cache.SetString(cacheKey, counter.ToString(), options);
return Ok(new { Count = counter });
}
}
}
```
这个接口使用了分布式缓存(`IDistributedCache`)来存储访问次数。在每次请求时,它首先从缓存中获取访问次数,如果缓存中已经有值,则将访问次数加 1,并将新值存储回缓存中。如果缓存中没有值,则将访问次数初始化为 1,并存储到缓存中。最后,它将访问次数作为 JSON 对象返回给客户端。
请注意,这只是一个简单的示例代码,您可能需要根据您的具体需求进行修改和优化。另外,这个接口使用了分布式缓存,因此您需要在您的应用程序中配置分布式缓存(例如使用 Redis、SQL Server 等)。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)