Frameworks
Nuxt 3 — Intégration Scell.io
Server route + composable côté client
Le SDK `@scell/sdk` v3.5.0 s'utilise dans Nuxt 3 via les server routes (`/server/api/invoices.post.ts`) où la clé `sk_*` reste sécurisée. Côté client, créer un composable `useScellInvoice()` qui appelle la server route via `$fetch`. Configuration via `nuxt.config.ts` avec `runtimeConfig.scellApiKey` (privé) et `runtimeConfig.public.scellPublishableKey`.
À retenir
- Server route `/server/api/invoices.post.ts`
- `runtimeConfig.scellApiKey` privé (jamais public)
- Composable `useScellInvoice()` côté client
- `$fetch` pour appeler la server route
- Compatible Nuxt 3 et 4 (Nitro)
Exemple de code
// server/api/invoices.post.ts
import { ScellClient } from '@scell/sdk';
export default defineEventHandler(async (event) => {
const config = useRuntimeConfig();
const body = await readBody(event);
const scell = new ScellClient({ apiKey: config.scellApiKey });
return await scell.invoices.create({
format: 'factur-x',
buyer: { name: body.buyer, is_individual: true },
lines: [{ description: body.label, quantity: 1, unit_price: body.amount, vat_rate: 20.0 }],
});
});