RebrickableSharp est un client C# fortement typé et facile à utiliser pour l'API Rebrickable qui vous permet de démarrer avec seulement quelques lignes de code. Il gère l'authentification, la gestion des erreurs et l'analyse de JSON en instances typées. Il prend en charge toutes les plates-formes .NET compatibles avec la norme .NET 2.0 .
Consultez le projet de démonstration pour des exemples complets.
Vous devez avoir un compte sur Rebrickable. Ensuite, allez dans Compte > Paramètres > API et créez une nouvelle clé ou utilisez-en une existante.
Notez que les classes d'assistance CSV ne nécessitent pas l'utilisation d'une clé API.
Install-Package RebrickableSharp
nuget install RebrickableSharp
RebrickableClientConfiguration . Instance . ApiKey = " <Your API Key> " ;
var client = RebrickableClientFactory . Build ( ) ;
// Do stuff
// Client must be disposed properly
client . Dispose ( ) ;
Alternativement, un HttpClient géré en externe peut être utilisé :
var httpClient = new HttpClient ( ) ;
var client = RebrickableClientFactory . Build ( httpClient ) ;
// Do stuff
// Client *and* HttpClient must be disposed properly
client . Dispose ( ) ;
httpClient . Dispose ( ) ;
Il est recommandé de créer et d'utiliser un client IRebrickableClient tout au long de la durée de vie de votre application.
Dans les applications utilisant un conteneur IoC, vous pouvez enregistrer IRebrickableClient en tant que service et l'injecter dans des instances consommatrices (par exemple des contrôleurs). Consultez les exemples ci-dessous pour enregistrer IRebrickableClient en tant qu'instance unique (Singleton).
containerBuilder . Register ( c => RebrickableClientFactory . Build ( ) )
. As < IRebrickableClient > ( )
. SingleInstance ( ) ;
services . AddSingleton ( typeof ( IRebrickableClient ) , provider =>
{
return RebrickableClientFactory . Build ( ) ;
} ) ;
// API
Task < PagedResponse < Part > > GetPartsAsync ( int page = 1 , int pageSize = 100 ,
bool includeDetails = false , string ? bricklinkId = null ,
string ? partNumber = null , IEnumerable < string > ? partNumbers = null ,
int ? categoryId = null , string ? brickOwlId = null ,
string ? legoId = null , string ? lDrawId = null ,
string ? searchTerm = null ,
CancellationToken cancellationToken = default ) ;
// Example
var response = await client . GetPartsAsync ( page : 1 , pageSize : 50 , includeDetails : true , searchTerm : " M-Tron " ) ;
var parts = response . Results ;
// API
Task < Part ? > FindPartByBricklinkIdAsync ( string bricklinkId ,
bool includeDetails = false ,
CancellationToken cancellationToken = default ) ;
// Example
var part = await client . FindPartByBricklinkIdAsync ( " 3005 " , true ) ;
// API
Task < PagedResponse < PartColor > > GetPartColorsAsync ( string partNumber ,
RebrickableCredentials ? credentials = null ,
CancellationToken cancellationToken = default ) ;
// Example
var pagedResult = await client . GetPartColorDetailsAsync ( " 3003 " ) ;
var partColors = pagedResult . Results ;
// API
Task < PartColorDetails > GetPartColorDetailsAsync ( string partNumber , int colorId ,
CancellationToken cancellationToken = default ) ;
// Example
var colorId = 1 ; //Blue
var partColorDetails = await client . GetPartColorDetailsAsync ( " 3005 " , colorId )
// API
Task < PagedResponse < Color > > GetColorsAsync ( int page = 1 , int pageSize = 100 ,
bool includeDetails = false ,
CancellationToken cancellationToken = default ) ;
// Example
var response = await client . GetColorsAsync ( includeDetails : true ,
page : 1 , pageSize : 50 ) ;
var colors = response . Results ;
// API
Task < Color > GetColorAsync ( int colorId , bool includeDetails = false ,
CancellationToken cancellationToken = default ) ;
// Example
var colorId = 0 ; //black
var black = await client . GetColorAsync ( colorId , includeDetails : true ) ;
// API
Task < Element > GetElementAsync ( string elementId ,
CancellationToken cancellationToken = default ) ;
// Example
var elementId = " 300521 " ; //1x1 Brick in Red
var element = await client . GetElementAsync ( elementId ) ;
// API
Task < Minifig > GetMinifigByIdAsync (
string minifigId ,
RebrickableCredentials ? credentials = null ,
CancellationToken cancellationToken = default ) ;
// Example
var minifigId = " fig-000001 " ; //Toy Store Employee, note that minifigId is named 'set_num' in the API docs.
var minifig = await client . GetMinifigByIdAsync ( minifigId ) ;