Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • Coopera RS
  • Wiki
  • Wiki
  • API Backend

Last edited by Tomás Bringhenti Onofrio Jun 24, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

API Backend

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Infra Código BD Frontend API Backend


Coopera RS - Documentação da API Backend

Visão Geral

Esta documentação descreve os principais endpoints da API do Coopera RS, uma plataforma voltada para o fortalecimento de pequenos empreendedores do Rio Grande do Sul.

O backend do projeto foi construído com Java + Spring Boot adotando arquitetura hexagonal, que visa a separação de responsabilidades entre domínio, aplicação e infraestrutura, permitindo maior manutenibilidade e testes mais eficazes.

Estrutura de Pastas

O projeto segue a seguinte estrutura base:

├── application      # Casos de uso (serviços de aplicação)
├── domain           # Entidades de negócio, agregados, interfaces
├── infrastructure   # Implementações técnicas (controladores, repositórios, clientes HTTP)
├── config           # Arquivos de configuração (segurança, Swagger, JWT)

Os endpoints são expostos por meio de controladores REST no módulo infrastructure, que dependem apenas das portas definidas no domain. O Swagger está configurado para facilitar a exploração da API.


Sumário

Exemplos de Payloads JSON por Endpoint

Autenticação

POST /api/auth/login

{
  "email": "[email protected]",
  "password": "senha123"
}

POST /api/auth/register

{
  "name": "Nome do Cliente",
  "email": "[email protected]",
  "password": "senhaSegura123",
  "phone": "51999998888",
  "cep": "90000000",
  "address": "Rua Exemplo",
  "number": "123",
  "complement": "Apto 404"
}

GET /api/auth/userAddress/{id}

Retorna os dados de endereço de um usuário.

POST /api/auth/linkPasswordChange

{
  "email": "[email protected]"
}

Usuário vira Loja

POST /api/store/create

{
  "idUser": 123,
  "storeName": "Loja Teste",
  "cnpj": "12345678000199",
  "addressDTO": {
    "cep": "90000111",
    "street": "Rua Teste",
    "number": 100,
    "unit": "Loja 1"
  },
  "description": "Loja de exemplo",
  "profileImgUrl": "https://exemplo.com/perfil.jpg",
  "gallery": [
    "https://exemplo.com/foto1.jpg",
    "https://exemplo.com/foto2.jpg"
  ]
}

Lojas

GET /api/stores

Lista todas as lojas.

GET /api/search/stores?q=termo

Busca lojas por termo.

GET /api/store/by-category/{categoryId}

Lojas por categoria.

GET /api/store/store_photos/{id}

Galeria de fotos da loja.

GET /api/store/get-address/{id}

Endereço completo da loja.

GET /api/store/{id}

(Real) Retorna detalhes da loja por ID.

PATCH /api/store/update-description

(Real) Atualiza descrição de uma loja.

{
  "idStore": 123,
  "description": "Nova descrição da loja."
}

Produtos

POST /api/product/create

{
  "name": "Bolsa Artesanal",
  "description": "Feita à mão",
  "photo": "https://exemplo.com/bolsa.jpg",
  "category": "Acessórios",
  "characteristics": [
    { "name": "Cor", "options": ["Bege", "Marrom"] }
  ],
  "variations": [
    { "options": { "Cor": "Bege" }, "price": 79.9, "stock": 3 }
  ]
}

GET /api/products

Lista geral de produtos.

GET /api/search/products?q=termo

Busca por nome/descrição.

GET /api/stores/{storeId}/products

Produtos de uma loja.


Carrinho

GET /api/cart

Lista os itens do carrinho atual do usuário.

POST /api/cart/add

Adiciona um item:

{
  "productId": 88,
  "variation": { "Cor": "Bege" },
  "quantity": 2
}

DELETE /api/cart/remove/{productId}

Remove um item.


Serviços Internos

  • EmailService: Envio de e-mails (cadastro, redefinição).
  • AddressService: Busca e atualização de endereços por CEP.
  • UserService: Atualização de perfil, status de verificação e ativação.
  • CategoryService: (em expansão) Criação e vinculação de categorias.
  • SponsorService: (planejado) Destaque de produtos/lojas.

Clone repository
  • API Backend
  • Escopo e Cronograma
  • Frontend
  • Processo
  • arquitetura
  • banco de dados
  • codigo
  • configuracao
  • design
    • mockups
  • Home
  • infraestrutura