RebrickableSharp는 단 몇 줄의 코드만으로 시작할 수 있는 강력한 형식의 사용하기 쉬운 Rebrickable API용 C# 클라이언트입니다. 인증, 오류 처리 및 JSON을 형식화된 인스턴스로 구문 분석하는 작업을 처리합니다. .NET 표준 2.0 과 호환되는 모든 .NET 플랫폼을 지원합니다.
모든 기능을 갖춘 예제를 보려면 데모 프로젝트를 확인하세요.
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 ( ) ;
애플리케이션 수명 전반에 걸쳐 하나의 IRerickableClient 클라이언트를 생성하고 사용하는 것이 좋습니다.
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 ) ;