vinisooo / contact-book-api

Contact Book is an application that allows you to manage contacts. With this application, you can easily and conveniently add, view, edit, and delete contacts.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Documentação - Contact Book API

Rodando Localmente

  1. Clone o repositório:

    git clone https://github.com/vinisooo/contact-book-api.git
  2. Navegue até o diretório do projeto:

    cd contact-book-api
  3. Instale as dependências do projeto utilizando o npm:

    npm install
  4. Inicie a API localmente:

    npm run dev
  5. Pronto! Agora a API deverá estar rodando localmente na porta 3001

    http://localhost:3001
  6. Acesse o front-end do projeto:

    Ver repositório
    Acessar front-end do projeto

Registro de Usuário

Endpoint: POST /users/register

Envio:

    {
      "name": "user",
      "email": "user@mail.com",
      "phone": "+55 00 000000000",
      "password": "password123"
    }
  

Resposta:

    {
      "id": 1,
      "name": "user",
      "email": "user@mail.com",
      "phone": "+55 00 000000000",
      "createdAt": "2023-05-30"
    }
  

Receber Usuário Logado

Endpoint: GET /users/logged/:id

Parâmetros:

  • id (número) - ID do usuário logado
  • Token (string) - Token de autenticação

Exemplo de resposta:

    {
      "id": 1,
      "name": "user",
      "email": "user@mail.com",
      "password": "$2a$10$toa3ha4.Hg6ZN0/ijYNkhelzHstHKC3Gn6i4fUwuOBbhYd1rEEu1m",
      "phone": "+55 00 000000000",
      "createdAt": "2023-05-27",
      "contacts": []
    }
  

Obter Usuários

Endpoint: GET /users

Resposta:

    [
      {
        "id": 2,
        "name": "user1",
        "email": "user2@gmail.com",
        "phone": "+55 00 000000000",
        "createdAt": "2023-05-28"
      },
      {
        "id": 3,
        "name": "user2",
        "email": "user2@gmail.com",
        "phone": "+55 00 000000000",
        "createdAt": "2023-05-28"
      }
    ]
  

Obter Usuário por ID

Endpoint: GET /users/:id

Parâmetros:

  • id (número) - ID do usuário

Exemplo de resposta:

    {
      "id": 1
      "name": "user",
      "email": "user@mail.com",
      "phone": "+55 00 000000000",
      "createdAt": "2023-05-24"
    }
  

Deletar Usuário por ID

Endpoint: DELETE /users/:id

Parâmetros:

  • id (número) - ID do usuário logado
  • Token (string) - Token de autenticação

Resposta: 204 No Content

Atualizar Usuário

Endpoint: PATCH /users/:id

Parâmetros:

  • id (número) - ID do usuário logado
  • Token (string) - Token de autenticação

Corpo da requisição:

    {
      "name": "updated User",
      "email": "uer@mail.com",
      "phone": "+55 00 0000000000"
    }
  

Exemplo de resposta:

    {
      "id": 7,
      "name": "updated User",
      "email": "user@mail.com",
      "phone": "+55 00 000000000",
      "createdAt": "2023-05-30"
    }
  

Obter Contatos do Usuário

Endpoint: GET /users/:id/contacts

Parâmetros:

  • id (número) - ID do usuário logado
  • Token (string) - Token de autenticação

Exemplo de resposta:

    [
      {
        "id": 2,
        "name": "contact1",
        "email": "contact1@mail.com",
        "phone": "+55 00 000000000",
        "createdAt": "2023-05-30"
      },
      {
        "id": 3,
        "name": "contact2",
        "email": "contact2@mail.com",
        "phone": "+55 00 000000000",
        "createdAt": "2023-05-30"
      }
    ]
  

Criar Contato

Endpoint: POST /contacts

Parâmetros:

  • Token (string) - Token de autenticação

Corpo da requisição:

    {
      "name": "contact",
      "phone": "+55 00 000000000",
      "email": "contact@mail.com"
    }
  

Exemplo de resposta:

    {
      "name": "contact",
      "email": "contact@mail.com",
      "phone": "+55 00 000000000",
      "user": {
        "id": 1,
        "name": "user",
        "email": "user@mail.com",
        "phone": "+55 00 000000000",
        "createdAt": "2023-05-30"
      },
      "id": 2,
      "createdAt": "2023-05-30"
    }
  

Obter Contato Específico

Endpoint: GET /contacts/:id

Parâmetros:

  • id (número) - ID do contato
  • Token (string) - Token de autenticação do dono do contato

Exemplo de resposta:

    {
      "id": 3,
      "name": "contact",
      "email": "contact@mail.com",
      "phone": "+55 00 000000000",
      "createdAt": "2023-05-30",
      "user": {
        "id": 1,
        "name": "user",
        "email": "user@mail.com",
        "phone": "+55 00 000000000",
        "createdAt": "2023-05-30"
      }
    }
  

Atualizar Contato Específico

Endpoint: PATCH /contacts/:id

Parâmetros:

  • id (número) - ID do contato
  • Token (string) - Token de autenticação do dono do contato

Corpo da requisição:

    {
      "name": "updated contact",
      "email": "updatedmail@mail.com",
      "phone": "+55 00 000000001"
    }
  

Exemplo de resposta:

    {
      "id": 3,
      "name": "updated contact",
      "email": "updatedmail@mail.com",
      "phone": "+55 00 000000001",
      "createdAt": "2023-05-30",
      "user": {
        "id": 1,
        "name": "user",
        "email": "user@mail.com",
        "phone": "+55 00 000000000",
        "createdAt": "2023-05-30"
      }
    }
  

Deletar Contato

Endpoint: DELETE /contacts/:id

Parâmetros:

  • id (número) - ID do contato
  • Token (string) - Token de autenticação do dono do contato

Resposta: 204 No Content

About

Contact Book is an application that allows you to manage contacts. With this application, you can easily and conveniently add, view, edit, and delete contacts.


Languages

Language:TypeScript 99.4%Language:Dockerfile 0.6%