web:api:prisma-fastify

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
web:api:prisma-fastify [2026/03/04 01:58] jcheronweb:api:prisma-fastify [2026/05/04 14:17] (Version actuelle) – [6. Prisma Client] jcheron
Ligne 1: Ligne 1:
 ====== API REST avec Fastify + Prisma ====== ====== API REST avec Fastify + Prisma ======
 +====== Sommaire ======
 +  * [[web:api:prisma-fastify:p2|]]
 +  * [[web:api:prisma-fastify:p2-b|]]
 +  * [[web:api:prisma-fastify:p3|]]
 +  * [[web:api:prisma-fastify:p4|]]
 +  * [[web:api:prisma-fastify:p5|]]
 +  * [[web:api:prisma-fastify:p6|]]
  
 ===== Partie 1 ===== ===== Partie 1 =====
Ligne 69: Ligne 76:
 ----- -----
  
-==== 4. Configuration Prisma ====+ 
 +==== 2. Configuration Prisma avec SQLite ==== 
 + 
 +Modifier `prisma/schema.prisma` : 
 + 
 +<code prisma> 
 +datasource db { 
 +  provider = "sqlite" 
 +  url      = env("DATABASE_URL"
 +
 + 
 +generator client { 
 +  provider = "prisma-client-js" 
 +
 +</code> 
 + 
 +----- 
 + 
 +==== 3. Configuration du fichier .env ==== 
 + 
 +<code> 
 +DATABASE_URL="file:./dev.db" 
 +</code> 
 + 
 +Explication : 
 + 
 +  * Prisma va créer automatiquement un fichier `dev.db` 
 +  * Le fichier sera situé à la racine du projet 
 + 
 +----- 
 + 
 +==== 4. Lancer la migration ==== 
 + 
 +<sxh bash> 
 +npx prisma migrate dev --name init 
 +</sxh> 
 + 
 +Résultat : 
 + 
 +  * Fichier dev.db créé 
 +  * Tables générées 
 +  * Client Prisma généré 
 + 
 +Aucune base externe nécessaire. 
 + 
 +----- 
 + 
 +==== 4.a Structure projet avec SQLite ==== 
 + 
 +<code> 
 +fastify-prisma-api/ 
 + ├── prisma/ 
 + ├── src/ 
 + ├── dev.db 
 + ├── .env 
 + ├── package.json 
 +</code> 
 + 
 +----- 
 + 
 +==== 4.Configuration Prisma avec postgres ==== 
 + 
 +<sxh bash> 
 +npm install @prisma/adapter-pg pg 
 +npm install -D @types/pg 
 +</sxh>
  
 Fichier `.env` : Fichier `.env` :
Ligne 79: Ligne 151:
 Modifier `prisma/schema.prisma` : Modifier `prisma/schema.prisma` :
  
-<sxh prisma>+<sxh ts>
 datasource db { datasource db {
   provider = "postgresql"   provider = "postgresql"
Ligne 120: Ligne 192:
  
 <sxh ts> <sxh ts>
-import { PrismaClient } from "@prisma/client"+import "dotenv/config"; 
 +import { PrismaPg } from "@prisma/adapter-pg"; 
 +import { PrismaClient } from "../generated/prisma/client";
  
-export const prisma = new PrismaClient()+const connectionString = `${process.env.DATABASE_URL}`; 
 +const adapter = new PrismaPg({ connectionString }); 
 +const prisma = new PrismaClient({ adapter })
 +export { prisma };
 </sxh> </sxh>
  
------ 
  
 ==== 7. Serveur + Routes simples ==== ==== 7. Serveur + Routes simples ====
Ligne 169: Ligne 245:
   * GET  http://localhost:3000/posts     * GET  http://localhost:3000/posts  
   * POST http://localhost:3000/posts   * POST http://localhost:3000/posts
 +
 +
 +<button type="primary" size="sm">[[web:api:prisma-fastify:p2|Suite >>]]</button>
  • web/api/prisma-fastify.1772585890.txt.gz
  • Dernière modification : il y a 2 mois
  • de jcheron