Skip to main content
6 of 7
updated about section
bevacqua
  • 213
  • 1
  • 8

BridgeStack — .NET client library with full 2.0 support

BridgeStack #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 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)
{
    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)
{
    Console.WriteLine(badge.Name);
}

The badges are then iterated, and their names are output to the console. Note that badges, while an IEnumerable<T>, contains valuable data other than the actual list items, like paging info, the actual response, exceptions that might have been thrown (and be the reason the enumeration is empty), etc.

##About
You can read the wiki documentation on GitHub here.

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.

Another goal in BridgeStack is to keep the code as clean and it's public facing interfaces as simple as possible.

###Update I've implemented multi-threading safe response caching and request throttling, these are explained in this post.

##Download BridgeStack can be downloaded following this link on GitHub.

##License I'm going with GPL

##Platform C# .NET 4.0

##Contact Nicolas Bevacqua

##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.

bevacqua
  • 213
  • 1
  • 8