RebrickableSharp เป็นไคลเอนต์ C# ที่พิมพ์ได้ชัดเจนและใช้งานง่ายสำหรับ Rebrickable API ซึ่งช่วยให้คุณเริ่มต้นด้วยโค้ดเพียงไม่กี่บรรทัด โดยจะจัดการการรับรองความถูกต้อง การจัดการข้อผิดพลาด และการแยกวิเคราะห์ JSON ลงในอินสแตนซ์ที่พิมพ์ รองรับแพลตฟอร์ม .NET ทั้งหมดที่รองรับ .NET มาตรฐาน 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 เป็นอินสแตนซ์เดี่ยว (ซิงเกิลตัน)
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 ) ;