Installation
Guide d'installation complet pour les SDK Chaindoc. Configure le SDK serveur pour l'intégration backend et le SDK Embed pour l'interface de signature frontend.
Conditions préalables
Installation du SDK serveur
Le SDK serveur sert pour l'intégration backend : gestion des documents, demandes de signature et vérification de la blockchain.
Étape 1 : Installe le paquet
npm install @chaindoc_io/server-sdkÉtape 2 : Configurer les variables d'environnement
Crée un fichier .env à la racine de ton projet :
# 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Étape 3 : Initialiser le SDK
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',
},
});Étape 4 : Vérifier la connexion
// 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');
}Installation du SDK intégré
Le SDK Embed offre une interface de signature pour les applis web. Il marche avec n'importe quel framework JavaScript.
Étape 1 : Installe le paquet
npm install @chaindoc_io/embed-sdkÉtape 2 : Configurer les variables d'environnement
# .env.local
REACT_APP_CHAINDOC_PUBLIC_KEY=pk_live_xxxxx
# or for Next.js
NEXT_PUBLIC_CHAINDOC_PUBLIC_KEY=pk_live_xxxxxÉtape 3 : lancez votre application
// 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;
}Configuration spécifique au framework
Next.js (routeur d'application)
'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 (routeur Pages)
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();
}
}Configuration TypeScript
Les deux SDK ont toutes les définitions TypeScript. Pas besoin de paquets @types en plus.
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "bundler",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"types": ["node"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true
}
}Configuration de l'environnement
Environnement de développement
// 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
});Environnement de production
// 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',
});Vérification
Teste ton installation en suivant ces étapes de vérification :
1Vérifiez la version du SDK.console.log(ChaindocEmbed.version) ; // Doit afficher le numéro de version
2Vérifie la connexion API.Teste le point de terminaison de vérification de l'état pour voir si les clés API sont valides.
3Test de téléchargement de fichierTélécharge un petit fichier test pour vérifier que les points de terminaison multimédia fonctionnent.
4Initialiser le SDK EmbedLance le SDK et vérifie s'il y a des erreurs dans la console du navigateur.
Dépannage
Erreur « Module introuvable »
# Clear cache and reinstall
rm -rf node_modules package-lock.json
npm install
# For yarn
rm -rf node_modules yarn.lock
yarn installErreurs TypeScript
Si tu vois des erreurs TypeScript, vérifie que ton fichier tsconfig.json a les bons paramètres de résolution de module et que les types Node.js sont installés.
npm install --save-dev @types/nodeProblèmes liés à la clé API
Prochaines étapes
- Consultez le guide de démarrage rapide pour votre première intégration.
- Regarde la documentation API pour les références aux points de terminaison.
- Jette un œil à la documentation des SDK pour découvrir les fonctionnalités avancées.
- Configurez des webhooks pour les notifications en temps réel.
- Rejoins la communauté de développeurs sur GitHub pour avoir de l'aide.