A client for the NexusMods API to process requests and responses as described in the API documentation, it handles the server responses and deserializes the content to .NET objects
This is a .NET Standard 2.0 class library, it is compatible with every .NET Standard 2.0 supported platform as described here
The NexusModsClient is used by any Inquirer to process the requests and responses of the API, it also does the error-handling and deserialization to .NET objects.
You can create a new Instance of the client by calling the NexusModsClient.Create method, which requires you to provide a valid API key and optionally your application name and version. Note that if you only provide a API key, then the name and version of this Library will be sent to the API with each request as per the API documentation.
var client = NexusModsClient.Create("your_private_api_key");An Inquirer is the actual endpoint of the API, where you can call methods that corresponds the routes of the API
- InfosInquirer
- ColourSchemesInquirer
- GamesInquirer
- ModFilesInquirer
- ModsInquirer
- UserInquirer
Mainly you want to use the InfosInquirer, which combines all available endpoints of the API.
var client = NexusModsClient.Create("your_private_api_key");
var infosInquirer = new InfosInquirer(client);You can use the provided NexusModsFactory to create Inquirers:
var infosInquirer = NexusModsFactory.New("your_private_api_key").CreateInfosInquirer();var infosInquirerFactory = NexusModsFactory.New("your_private_api_key");
var userInquirer = infosInquirerFactory.CreateUserInquirer();The RateLimitsManagement property of an Inquirer helps you with reading the current limits of the API, you can also set your own custom daily and hourly limits and decide whether to throw an exception if they are both exceeded. Note that a LimitsExceededException will always be thrown if both API Limits are exceeded (100 Hourly, 2500 Daily).
The RateLimitsManagement also has two events DailyLimitsExceeded and HourlyLimitsExceeded which will get invoked whenever a Limit is exceeded (both API and Custom) and recives a LimitType which is either API limit or Custom limit
/// <summary>
/// Indicates that a Daily limit has been exceeded.
/// </summary>
event EventHandler<LimitType> DailyLimitsExceeded;
/// <summary>
/// Indicates that a Hourly limit has been exceeded.
/// </summary>
event EventHandler<LimitType> HourlyLimitsExceeded;NexusAPIException--> The base exception for all errors.ForbiddenExceptionLimitsExceededExceptionUnauthorizedException
Any responses form the API with a status code that is not in the range 200 - 299 are treated as errors and an exception will be thrown based on the status code.
All exceptions derive from the base exception class NexusAPIException