Kurulum
Chaindoc SDK'ları için eksiksiz kurulum kılavuzu. Arka uç entegrasyonu için Sunucu SDK'sını ve ön uç imza arayüzü için Gömülü SDK'yı kurun.
Önkoşullar
Sunucu SDK Kurulumu
Sunucu SDK'sı, arka uç entegrasyonu için kullanılır - belge yönetimi, imza talepleri ve blok zinciri doğrulama.
Adım 1: Paketi Yükleyin
npm install @chaindoc_io/server-sdkAdım 2: Ortam Değişkenlerini Yapılandırın
Proje kök dizininde bir .env dosyası oluşturun:
# Production keys
CHAINDOC_SECRET_KEY=sk_live_xxxxxxxxxxxxx
# Staging/Testing keys
# CHAINDOC_SECRET_KEY=sk_test_xxxxxxxxxxxxx
# Optional: Custom API endpoint
# CHAINDOC_API_URL=https://api.chaindoc.ioAdım 3: SDK'yı başlatın
import { Chaindoc } from '@chaindoc_io/server-sdk';
// Basic initialization
export const chaindoc = new Chaindoc({
secretKey: process.env.CHAINDOC_SECRET_KEY!,
});
// Advanced configuration
export const chaindocAdvanced = new Chaindoc({
secretKey: process.env.CHAINDOC_SECRET_KEY!,
baseUrl: process.env.CHAINDOC_API_URL, // Optional
timeout: 60000, // 60 seconds
retry: {
maxRetries: 5,
baseDelayMs: 1000,
maxDelayMs: 10000,
},
headers: {
'X-Custom-Header': 'value',
},
});Adım 4: Bağlantıyı Doğrulayın
// Test API connection
const health = await chaindoc.healthCheck();
if (health.status === 'ok' && health.apiKeyValid) {
console.log('✓ Connected to Chaindoc API');
console.log('User ID:', health.userId);
} else {
console.error('✗ Connection failed');
}SDK Yüklemeyi Yerleştir
Embed SDK, web uygulamaları için bir imza arayüzü sağlar. Herhangi bir JavaScript çerçevesiyle çalışır.
Adım 1: Paketi Yükleyin
npm install @chaindoc_io/embed-sdkAdım 2: Ortam Değişkenlerini Yapılandırın
# .env.local
REACT_APP_CHAINDOC_PUBLIC_KEY=pk_live_xxxxx
# or for Next.js
NEXT_PUBLIC_CHAINDOC_PUBLIC_KEY=pk_live_xxxxxAdım 3: Uygulamanızda Başlatın
// hooks/useChaindoc.ts
import { useRef, useEffect } from 'react';
import { ChaindocEmbed } from '@chaindoc_io/embed-sdk';
export function useChaindoc() {
const sdkRef = useRef<ChaindocEmbed | null>(null);
useEffect(() => {
sdkRef.current = new ChaindocEmbed({
publicKey: process.env.REACT_APP_CHAINDOC_PUBLIC_KEY!,
environment: 'production',
});
return () => {
sdkRef.current?.destroy();
};
}, []);
return sdkRef.current;
}Çerçeveye Özgü Kurulum
Next.js (Uygulama Yönlendiricisi)
'use client';
import { createContext, useContext, useEffect, useRef } from 'react';
import { ChaindocEmbed } from '@chaindoc_io/embed-sdk';
const ChaindocContext = createContext<ChaindocEmbed | null>(null);
export function ChaindocProvider({ children }: { children: React.ReactNode }) {
const sdkRef = useRef<ChaindocEmbed | null>(null);
useEffect(() => {
if (!sdkRef.current) {
sdkRef.current = new ChaindocEmbed({
publicKey: process.env.NEXT_PUBLIC_CHAINDOC_PUBLIC_KEY!,
});
}
return () => {
sdkRef.current?.destroy();
};
}, []);
return (
<ChaindocContext.Provider value={sdkRef.current}>
{children}
</ChaindocContext.Provider>
);
}
export const useChaindoc = () => useContext(ChaindocContext);Next.js (Sayfa Yönlendirici)
import type { AppProps } from 'next/app';
import { useEffect, useRef } from 'react';
import { ChaindocEmbed } from '@chaindoc_io/embed-sdk';
export default function App({ Component, pageProps }: AppProps) {
const sdkRef = useRef<ChaindocEmbed | null>(null);
useEffect(() => {
sdkRef.current = new ChaindocEmbed({
publicKey: process.env.NEXT_PUBLIC_CHAINDOC_PUBLIC_KEY!,
});
return () => {
sdkRef.current?.destroy();
};
}, []);
return <Component {...pageProps} />;
}Nuxt 3
import { ChaindocEmbed } from '@chaindoc_io/embed-sdk';
export default defineNuxtPlugin(() => {
const config = useRuntimeConfig();
const chaindoc = new ChaindocEmbed({
publicKey: config.public.chaindocPublicKey,
});
return {
provide: {
chaindoc,
},
};
});Angular
import { Injectable, OnDestroy } from '@angular/core';
import { ChaindocEmbed } from '@chaindoc_io/embed-sdk';
import { environment } from '../environments/environment';
@Injectable({
providedIn: 'root'
})
export class ChaindocService implements OnDestroy {
private sdk: ChaindocEmbed;
constructor() {
this.sdk = new ChaindocEmbed({
publicKey: environment.chaindocPublicKey,
});
}
getSdk(): ChaindocEmbed {
return this.sdk;
}
ngOnDestroy(): void {
this.sdk.destroy();
}
}TypeScript Yapılandırması
Her iki SDK da tam TypeScript tanımlarını içerir. Ek @types paketlerine gerek yoktur.
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "bundler",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"types": ["node"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true
}
}Ortam Yapılandırması
Geliştirme Ortamı
// Use test keys for development
const chaindoc = new Chaindoc({
secretKey: 'sk_test_xxxxx',
baseUrl: 'https://api.chaindoc.io',
});
const embed = new ChaindocEmbed({
publicKey: 'pk_test_xxxxx',
environment: 'staging',
debug: true, // Enable detailed logs
});Üretim Ortamı
// Use live keys for production
const chaindoc = new Chaindoc({
secretKey: process.env.CHAINDOC_SECRET_KEY!, // sk_live_xxxxx
});
const embed = new ChaindocEmbed({
publicKey: process.env.NEXT_PUBLIC_CHAINDOC_PUBLIC_KEY!, // pk_live_xxxxx
environment: 'production',
});Doğrulama
Yüklemenizi şu doğrulama adımlarıyla test edin:
1SDK Sürümünü Kontrol Edinconsole.log(ChaindocEmbed.version); // Sürüm numarasını göstermelidir
2API Bağlantısını DoğrulayınAPI anahtarlarının geçerli olduğunu doğrulamak için sağlık kontrolü uç noktasını test edin
3Test Dosyası YüklemeMedya uç noktalarının çalıştığını doğrulamak için küçük bir test dosyası yükleyin.
4Embed SDK'yı başlatınSDK'yı başlatın ve tarayıcı konsolunda herhangi bir hata olup olmadığını kontrol edin.
Sorun Giderme
Modül Bulunamadı Hatası
# Clear cache and reinstall
rm -rf node_modules package-lock.json
npm install
# For yarn
rm -rf node_modules yarn.lock
yarn installTypeScript Hataları
TypeScript hataları görürseniz, tsconfig.json dosyanızda doğru modül çözümleme ayarlarının yapıldığından ve Node.js türlerinin yüklü olduğundan emin olun.
npm install --save-dev @types/nodeAPI Anahtarı Sorunları
Sonraki Adımlar
- İlk entegrasyonunuz için Hızlı Başlangıç kılavuzunu inceleyin.
- Uç nokta referansı için API Belgelerini kontrol edin.
- Gelişmiş özellikler için SDK belgelerini inceleyin.
- Gerçek zamanlı bildirimler için Webhooks'u ayarlayın
- Destek için GitHub'daki geliştirici topluluğuna katılın