#BridgeStack
This is a StackExchange API v2.0 consumer library written under C#
. It is heavily documented and designed to make it as easy as humanly possible to interact with the API.
##Example Usage
To get the name of each silver badge you've been awarded on Stack Overflow:
var client = new StackClientFactory().Create(_appKey, _token);
client.Default.Site = NetworkSiteEnum.StackOverflow;
var parameters = new BadgesOnUserQuery
{
Sort = QuerySortEnum.BadgeRank,
Min = BadgeRankEnum.Silver,
Max = BadgeRankEnum.Silver
};
var badges = client.GetMyBadges(parameters);
foreach (var badge in badges.Unsafe)
{
Console.WriteLine(badge.Name);
}
##Line by Line Explanation:
var client = new StackClientFactory().Create(_appKey, _token);
A StackClient
instance is created, passing in your application's key and the user's access token.
client.Default.Site = NetworkSiteEnum.StackOverflow;
A default is set so that all requests made through this client which require a target site use Stack Overflow
var parameters = new BadgesOnUserQuery
{
Sort = QuerySortEnum.BadgeRank,
Min = BadgeRankEnum.Silver,
Max = BadgeRankEnum.Silver
};
A query parameter object is created, using the Rank
sort on badges, and setting the range to only Silver
badges.
var badges = client.GetMyBadges(parameters);
The API is accessed, and the user badges are received from StackExchange.
foreach (var badge in badges.Unsafe)
{
Console.WriteLine(badge.Name);
}
The badges are then iterated, and their names are output to the console. Note that Unsafe
only means that if a problem arises, Unsafe
can throw an Exception
. If we were using Safe
, it would just have been null
. This has to do with coding style, mostly.
##About
I created BridgeStack as a way to give back to the StackOverflow community, which has helped me out and taught me on countless ocassions.
At all times I attempted to mantain the same philosophy in writting this library. I documented every method, reused as much code as possibly, mirrored the API as heavily as possible, and generally designed it with wrapping away complexity in mind.
I would appreciate if you let me know what you think of it. I'm sure there's a lot of room for improvement.
###Download
BridgeStack can be downloaded following this link on GitHub.
###Platform
C# .NET 4.0
##Contact
##Code
BridgeStack was written under C# .NET 4.0, though I assume it wouldn't be a problem to port it to other plaforms if enough people were interested in it. You can find the full source code on GitHub.