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-sdk

Adım 2: Ortam Değişkenlerini Yapılandırın

Proje kök dizininde bir .env dosyası oluşturun:

.env
# 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.io

Adım 3: SDK'yı başlatın

lib/chaindoc.ts
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

terminal
// 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-sdk

Adı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_xxxxx

Adı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)

app/providers.tsx
'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)

pages/_app.tsx
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

plugins/chaindoc.client.ts
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

services/chaindoc.service.ts
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.

tsconfig.json
{
  "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ı

terminal
// 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ı

terminal
// 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ı

terminal
# Clear cache and reinstall
rm -rf node_modules package-lock.json
npm install

# For yarn
rm -rf node_modules yarn.lock
yarn install

TypeScript 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.

terminal
npm install --save-dev @types/node

API 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