RebrickableSharp ist ein stark typisierter, benutzerfreundlicher C#-Client für die Rebrickable-API, der Ihnen den Einstieg mit nur wenigen Codezeilen ermöglicht. Es übernimmt die Authentifizierung, Fehlerbehandlung und das Parsen von JSON in typisierte Instanzen. Es unterstützt alle .NET-Plattformen, die mit dem .NET-Standard 2.0 kompatibel sind.
Schauen Sie sich das Demoprojekt für umfassende Beispiele an.
Sie benötigen ein Konto bei Rebrickable. Gehen Sie dann zu Konto > Einstellungen > API und erstellen Sie einen neuen Schlüssel oder verwenden Sie einen vorhandenen.
Beachten Sie, dass für die CSV-Hilfsklassen kein API-Schlüssel erforderlich ist.
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 ( ) ;
Alternativ kann ein extern verwalteter HttpClient verwendet werden:
var httpClient = new HttpClient ( ) ;
var client = RebrickableClientFactory . Build ( httpClient ) ;
// Do stuff
// Client *and* HttpClient must be disposed properly
client . Dispose ( ) ;
httpClient . Dispose ( ) ;
Es wird empfohlen, während der gesamten Lebensdauer Ihrer Anwendung einen IRebrickableClient -Client zu erstellen und zu verwenden.
In Anwendungen, die einen IoC-Container verwenden, können Sie den IRebrickableClient als Dienst registrieren und ihn in konsumierende Instanzen (z. B. Controller) einspeisen. Sehen Sie sich die folgenden Beispiele an, um den IRebrickableClient als einzelne Instanz (Singleton) zu registrieren.
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 ) ;