Skip to content

Api feita em golang, utilizando postgres como banco, para criação de usuários, produtos e categorias

Notifications You must be signed in to change notification settings

guicastro13/go-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API STORE

Applicação para cadastro de usuário. categorias e produtos.

A aplicação é feita com go e postgres, sqlc como ORM, chi como manipulador http.

O postgres esta rodando com o docker, com o comando docker compose up -d --build

Após o banco ficar on, precisa rodar as migrations, criei um script com makefile para isso, basta, os comandos os disponiveis são: create_migration para criar uma nova migration migrate_up para rodar as migrations migrate_down para descartar as migrations

Então, para iniciar o projeto, rode migrate_up, apos isso, go run cmd/main.go.

Autenticação:

A maioria dos endpoints da API exige um token de portador válido para autorização. Você pode obter um token de portador fazendo login (consulte a rota Login). O token de portador deve ser incluído no cabeçalho Authorization usando o formato: Authorization: Bearer {seu_token_aqui}

Rotas:

Produtos

Criar Produto (POST /product)

Cria um novo produto. Sem necessidade de autorização.

Corpo: JSON contendo detalhes do produto:

title: Título do produto (obrigatório) description: Descrição do produto (opcional) categories: Array de IDs de categorias do produto (obrigatório) price: Preço do produto em centavos (obrigatório) Exemplo:

{
  "title": "Camisa Nike",
  "description": "Camisa Nike Dri-FIT para corrida",
  "categories": ["3f768233-7049-4779-bd22-65b0ad09d980"],
  "price": 149900
}

Atualizar Produto (PATCH /product/:id)

Atualiza um produto existente. Requer autorização.

Variável do Caminho:

id: ID do produto a ser atualizado Corpo: JSON contendo detalhes do produto para atualizar (atualizações parciais permitidas):

title: Título do produto (opcional) description: Descrição do produto (opcional) categories: Array de IDs de categorias do produto (opcional) price: Preço do produto em centavos (opcional) Exemplo:

{
  "title": "Camisa Nike Atualizada",
  "price": 159900
}

Excluir Produto por ID (DELETE /product/:id)

Exclui um produto. Requer autorização.

Variável do Caminho:

id: ID do produto a ser excluído

Obter Todos os Produtos (GET /products)

Recupera uma lista de todos os produtos. Requer autorização.

Categorias

Criar Categoria (POST /category)

Cria uma nova categoria. Requer autorização.

Corpo: JSON contendo detalhes da categoria:

title: Título da categoria (obrigatório) Exemplo:

{
  "title": "Roupas"
}

Encontrar Todas as Categorias (GET /categories)

Recupera uma lista de todas as categorias. Requer autorização.

Usuários Criar Usuário (POST /user)

Cria um novo usuário. Sem necessidade de autorização.

Corpo: JSON contendo detalhes do usuário:

name: Nome do usuário (obrigatório) email: E-mail do usuário (obrigatório) password: Senha do usuário (obrigatório) cep: CEP do usuário (opcional) Exemplo:

{
  "name": "João Silva",
  "email": "joaosilva@email.com",
  "password": "senha1234",
  "cep": "13500163"
}

Atualizar Usuário (PATCH /user/me)

Atualiza o usuário logado no momento. Requer autorização.

Corpo: JSON contendo detalhes do usuário para atualizar (atualizações parciais permitidas):

name: Nome do usuário (opcional) password: Senha do usuário (opcional) Exemplo:

{
  "name": "João Silva Atualizado"
}

Obter Usuário Logado (GET /user/me)

Recupera detalhes do usuário logado no momento. Requer autorização.

Atualizar Senha (PATCH /user/password)

Atualiza a senha do usuário logado no momento. Requer autorização.

Corpo: JSON contendo nova senha e senha antiga para Exemplo:

{
    "password": "123445@1",
    "old_password": "12345%#1"
}

About

Api feita em golang, utilizando postgres como banco, para criação de usuários, produtos e categorias

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published