RebrickableSharp هو عميل C# قوي الكتابة وسهل الاستخدام لواجهة برمجة التطبيقات Rebrickable التي تساعدك على البدء ببضعة أسطر فقط من التعليمات البرمجية. يتعامل مع المصادقة ومعالجة الأخطاء وتحليل JSON في المثيلات المكتوبة. وهو يدعم جميع منصات .NET المتوافقة مع .NET Standard 2.0 .
تحقق من المشروع التجريبي للحصول على أمثلة كاملة المواصفات.
يجب أن يكون لديك حساب على Rebrickable. بعد ذلك، انتقل إلى الحساب > الإعدادات > واجهة برمجة التطبيقات (API) وقم بإنشاء مفتاح جديد أو استخدم مفتاحًا موجودًا.
لاحظ أن فئات مساعد CSV لا تتطلب استخدام مفتاح 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 ( ) ;
وبدلاً من ذلك، يمكن استخدام HttpClient المُدار خارجيًا :
var httpClient = new HttpClient ( ) ;
var client = RebrickableClientFactory . Build ( httpClient ) ;
// Do stuff
// Client *and* HttpClient must be disposed properly
client . Dispose ( ) ;
httpClient . Dispose ( ) ;
يوصى بإنشاء واستخدام عميل IRebrickableClient واحد طوال عمر التطبيق الخاص بك.
في التطبيقات التي تستخدم حاوية IoC، يمكنك تسجيل IRebrickableClient كخدمة وإدخاله في المثيلات المستهلكة (مثل وحدات التحكم). راجع الأمثلة أدناه لتسجيل IRebrickableClient كمثيل واحد (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 ) ;