Skip to content

LuidiPiresHub/TypeGraphQL-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API GraphQL com TypeScript

Descrição

Este projeto é uma API desenvolvida com GraphQL usando TypeScript e Prisma. O objetivo foi criar uma API RESTful que usa GraphQL para fornecer consultas e mutações, permitindo uma abordagem flexível para o acesso aos dados. Este é um exemplo de como configurar e trabalhar com GraphQL e TypeScript pela primeira vez.

O que Aprendi

  • GraphQL: Como configurar e implementar um servidor GraphQL usando TypeScript.
  • Prisma: Integração com Prisma ORM para gerenciamento de banco de dados MongoDB.
  • TypeScript: Uso de TypeScript para tipos estáticos e segurança de tipo em um projeto GraphQL.
  • Configuração de Ambiente: Configuração do servidor Apollo e Prisma Client para um ambiente de desenvolvimento completo.

Diagrama do Projeto

Aqui está um diagrama visual do projeto criado com Excalidraw:

Diagrama do Projeto

❗️❗️ Instalação e utilização ❗️❗️

1. Clone o repositório:

  git clone git@github.com:LuidiPiresHub/TypeGraphQL-API.git
  cd TypeGraphQL-API

2. Instale as dependências:

  npm install

3. Crie um arquivo .env na raiz do projeto e adicione as seguintes variáveis de ambiente:

  PORT=3001 // Ou qualquer outra porta que desejar
  DATABASE_URL="sua_url_do_banco_de_dados"

4. Gere o PrismaClient e execute o script de seed:

  npx prisma generate
  npm run seed

5. Execute o servidor

  npm run dev
🛠 Query's e Mutation's 🛠

1. Query para buscar todos os usuários:

query getUsers {
    getUsers {
      id
      name
      age
      email
    }
  }

2. Query para buscar usuário por ID:

query getUserById {
  getUserById(id: "clz3cgznv0000covc8rj03ev7") {
    id
    name
    email
    age
  }
}

3. Mutation para criar usuário:

mutation createUser {
  createUser(name: "João", age: 30, email: "joao@gmail.com") {
    id
    name
    email
    age
  }
}

4. Mutation para atualizar usuário:

mutation updateUser {
  updateUser(
    id: "clz3cgznv0000covc8rj03ev7",
    name: "Maria", 
    email: "maria@gmail.com", 
    age: 35
  ) {
  id
  name
  email
  age
}
}

5. Mutation para deletar usuário:

mutation deleteUser {
  deleteUser(id: "clz3cgznv0000covc8rj03ev7") {
    id
    name
    email
    age
  }
}

Nota: Este é um projeto para fins de estudo e demonstração. Para ambientes de produção, considere práticas de segurança adicionais e validações mais robustas.


Feito com 💙 por Luídi Pires

Releases

No releases published

Packages

 
 
 

Contributors