-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarify ApiInfo rate limiting usage in docs #1524
Changes from 1 commit
ac86bfc
307d461
7492a86
d7b35aa
9d575a8
4c242bd
c44777c
e653995
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -69,3 +69,22 @@ If you've authenticated as a given user, you can query their details directly: | |
``` | ||
var user = await client.User.Current(); | ||
``` | ||
|
||
### Too Much of a Good Thing: Dealing with API Rate Limits | ||
Like any popular API, Github needs to throttle some requests. The OctoKit.NET client allows you to get some insight into how many requests you have left and when you can start making requests again. It does this via the `ApiInfo` object and the `GetLastApiInfo()` method. | ||
|
||
Example usage: | ||
|
||
```csharp | ||
var client; //Create the client up here | ||
|
||
// Prior to first API call, this will be null, because it only deals with the last call. | ||
var apiInfo = client.GetLastApiInfo(); | ||
|
||
// If the ApiInfo isn't null, there will be a property called RateLimit | ||
var rateLimit = apiInfo?.RateLimit; | ||
|
||
var howManyRequestsCanIMakePerHour = rateLimit?.Limit; | ||
var howManyRequestsToIHaveLeft = rateLimit?.Remaining; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ToIHaveLeft => DoIHaveLeft There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 Nice catch, thanks. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. |
||
var whenDoesTheLimitReset = rateLimit?.Reset; | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe add a hyperlink to the github API docs "rate limiting" section? Also maybe it's worth mentioning that an authenticated client has a much higher limit than anonymous
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Great feedback; will do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has been done.