This is an osu! API wrapper. See https://github.com/ppy/osu-api/wiki.
Install Nuget package.
See this code.
using Bleatingsheep.Osu.ApiClient;
var osuApiClient = OsuApiClientFactory.CreateClient("your-API-key");
var user = await osuApiClient.GetUser(124493, Mode.Standard);
var user2 = await osuApiClient.GetUser("idke");
var beatmaps = await osuApiClient.GetBeatmaps(Mode.Mania, false, DateTime.Now - TimeSpan.FromDays(2), 100);
using Bleatingsheep.Osu.ApiClient;
var factory = OsuApiClientFactory.CreateFactory("your-API-key");
var osuApiClient = factory.CreateHttpApi();
var user = await osuApiClient.GetUser(124493, Mode.Standard);
var user2 = await osuApiClient.GetUser("idke");
var beatmaps = await osuApiClient.GetBeatmaps(Mode.Mania, false, DateTime.Now - TimeSpan.FromDays(2), 100);
Add following content to your ConfigureServices
method.
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHttpApiFactory<IOsuApiClient>>(p =>
{
return OsuApiClientFactory.CreateFactory("your-API-key",
c =>
{
c.LoggerFactory = p.GetRequiredService<ILoggerFactory>();
});
});
services.AddTransient<IOsuApiClient>(p =>
{
var factory = p.GetRequiredService<IHttpApiFactory<IOsuApiClient>>();
return factory.CreateHttpApi();
});
}
You should replace your-API-key
with your osu! API key from configuration file or other places.
public class OsuApiController : Controller
{
private readonly IOsuApiClient _osuApiClient;
public OsuApiController(IOsuApiClient osuApiClient)
{
this._osuApiClient = osuApiClient;
}
public async Task<string> Index()
{
var user = await _osuApiClient.GetUser("bleatingsheep");
return $"{user.Name} | {user.Performance} PP";
}
}