A beautiful .NET API that wraps the awesome Comic Vine REST API.
You will need an API key from https://comicvine.com/api.
There are 3 main ways to find/fetch information:
- Request a resource by ID
- Filter a specific type of resource
- Search for any resource that matches a query
For each of the resources, you can esily request a specific item in 1 line of code:
// create the client
var client = new ComicVineClient("<API-KEY>", "<CUSTOM-USER-AGENT>");
// request the Batgirl (Cassandra Cain) character
var cassie = await client.Character.GetAsync(65230);
// print something out
Console.WriteLine($"{cassie.Name} was born on {cassie.Birth}.");
Basic filter with values:
// create the client
var client = new ComicVineClient("<API-KEY>", "<CUSTOM-USER-AGENT>");
// request the female Cain family characters
var females = client.Character.Filter()
.WithValue(x => x.Name, "Cain")
.WithValue(x => x.Gender, Gender.Female);
// fetch the first result (all fields)
var first = await females.FirstOrDefaultAsync();
// print something out
Console.WriteLine($"{first.Name} was born on {first.Birth}.");
Filter with reduced fields for smaller payloads:
// create the client
var client = new ComicVineClient("<API-KEY>", "<CUSTOM-USER-AGENT>");
// request the female Cain family characters
var females = client.Character.Filter()
.WithValue(x => x.Name, "Cain")
.WithValue(x => x.Gender, Gender.Female);
// just fetch minimal data (id, name, birth)
var smallPayload = females
.IncludeField(x => x.Id)
.IncludeField(x => x.Name)
.IncludeField(x => x.Birth);
// fetch all the results on the page
var page = await smallPayload.ToListAsync();
// fetch all the items on all the pages
foreach (var character in page)
{
// print something out
Console.WriteLine($"{character.Name} was born on {character.Birth}.");
}
Iterate over all the results on the server (via multiple API calls):
// create the client
var client = new ComicVineClient("<API-KEY>", "<CUSTOM-USER-AGENT>");
// request the female Cain family characters
var females = client.Character.Filter()
.WithValue(x => x.Name, "Cain")
.WithValue(x => x.Gender, Gender.Female);
// fetch all the items on all the pages
await foreach (var character in filter.ToAsyncEnumerable())
{
// print something out
Console.WriteLine($"{character.Name} was born on {character.Birth}.");
}
TODO: add docs
TODO: add docs
- Search
- Resources
- Characters
- Chats
- Concepts
- Episodes
- Issues
- Locations
- Movies
- Objects
- Origins
- People
- Powers
- Promos
- Publishers
- Series
- Story Arcs
- Teams
- Videos
- Video Types
- Video Categories
- Volumes