... | @@ -10,7 +10,7 @@ O **Painel de Dados Nubo - Backend** é um sistema baseado em microserviço que |
... | @@ -10,7 +10,7 @@ O **Painel de Dados Nubo - Backend** é um sistema baseado em microserviço que |
|
|
|
|
|
O sistema segue a arquitetura **modular**, organizada da seguinte forma:
|
|
O sistema segue a arquitetura **modular**, organizada da seguinte forma:
|
|
|
|
|
|
```
|
|
```plaintext
|
|
📦 nubo-backend
|
|
📦 nubo-backend
|
|
┣ 📂 config # Configurações do sistema (banco, JWT, YAML, etc.)
|
|
┣ 📂 config # Configurações do sistema (banco, JWT, YAML, etc.)
|
|
┣ 📂 model # Definições das entidades e estrutura do banco de dados
|
|
┣ 📂 model # Definições das entidades e estrutura do banco de dados
|
... | @@ -50,13 +50,12 @@ O sistema segue a arquitetura **modular**, organizada da seguinte forma: |
... | @@ -50,13 +50,12 @@ O sistema segue a arquitetura **modular**, organizada da seguinte forma: |
|
- Inclui conexão com o banco de dados e parâmetros do JWT.
|
|
- Inclui conexão com o banco de dados e parâmetros do JWT.
|
|
|
|
|
|
## Integrações e Tecnologias
|
|
## Integrações e Tecnologias
|
|
|
|
| Tecnologia | Uso |
|
|
| Tecnologia | Uso |
|
|
|------------|-----|
|
|
| --------------- | -------------------------------------- |
|
|
| **FastAPI** | Framework web para APIs assíncronas |
|
|
| **FastAPI** | Framework web para APIs assíncronas |
|
|
| **SQLAlchemy** | ORM para manipulação de banco de dados |
|
|
| **SQLAlchemy** | ORM para manipulação de banco de dados |
|
|
| **JWT (PyJWT)** | Autenticação e autorização |
|
|
| **JWT (PyJWT)** | Autenticação e autorização |
|
|
| **Docker** | Containerização da aplicação |
|
|
| **Docker** | Containerização da aplicação |
|
|
|
|
|
|
|
|
## Fluxo de Requisição
|
|
## Fluxo de Requisição
|
|
|
|
|
... | @@ -64,4 +63,49 @@ O sistema segue a arquitetura **modular**, organizada da seguinte forma: |
... | @@ -64,4 +63,49 @@ O sistema segue a arquitetura **modular**, organizada da seguinte forma: |
|
2. **Router** recebe a requisição e valida os dados de entrada.
|
|
2. **Router** recebe a requisição e valida os dados de entrada.
|
|
3. **Service** processa a lógica de negócio e acessa os modelos, se necessário.
|
|
3. **Service** processa a lógica de negócio e acessa os modelos, se necessário.
|
|
4. **Repository** interage com o banco de dados via SQLAlchemy.
|
|
4. **Repository** interage com o banco de dados via SQLAlchemy.
|
|
5. **Resposta** é enviada de volta ao usuário. |
|
5. **Resposta** é enviada de volta ao usuário.
|
|
\ No newline at end of file |
|
|
|
|
|
## Rotas da API
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary>User</summary>
|
|
|
|
* POST /users - Criar usuário (admin ou normal)
|
|
|
|
* GET /users/email/{email} - Buscar usuário por email
|
|
|
|
* GET /users/account/{accountId} - Listar todos os usuários por conta
|
|
|
|
* DELETE /users/{userId} - Excluir usuário (soft delete)
|
|
|
|
* POST /users/authenticate - Autenticar usuário
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary>Account</summary>
|
|
|
|
* POST /accounts - Criar conta
|
|
|
|
* PUT /accounts/{accountId} - Atualizar conta
|
|
|
|
* GET /accounts/email/{email} - Buscar conta por email
|
|
|
|
* GET /accounts - Listar todas as contas
|
|
|
|
* DELETE /accounts/{accountId} - Excluir conta (soft delete)
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary>Dataset</summary>
|
|
|
|
* POST /datasets - Criar dataset
|
|
|
|
* PUT /datasets/{datasetId} - Atualizar dataset
|
|
|
|
* GET /datasets/{datasetId} - Buscar dataset por ID
|
|
|
|
* GET /datasets/location/{location} - Buscar dataset por localização
|
|
|
|
* GET /datasets/price/{price} - Buscar dataset por preço
|
|
|
|
* GET /datasets - Listar todos os datasets (paginação)
|
|
|
|
* DELETE /datasets/{datasetId} - Excluir dataset (soft delete)
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary>Invoice</summary>
|
|
|
|
* POST /invoices - Criar fatura
|
|
|
|
* GET /invoices/account/{accountId} - Buscar fatura por conta
|
|
|
|
* GET /invoices - Buscar todas as faturas Transaction POST /transactions - Criar transação (única ou assinatura)
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary>Subscription</summary>
|
|
|
|
* POST /subscriptions - Criar assinaturaDELETE /subscriptions/{subscriptionId} - Cancelar assinatura
|
|
|
|
* GET /subscriptions/account/{accountId} - Buscar todas as assinaturas por conta
|
|
|
|
* GET /subscriptions/account/{accountId}/month/{month} - Buscar todas as assinaturas por conta e mês
|
|
|
|
</details> |
|
|
|
\ No newline at end of file |