Introdução

Bem-vindo à documentação da API do AshLite, o sistema ERP Soys. Esta API RESTful fornece acesso programático às funcionalidades do sistema, permitindo integração com outros sistemas e desenvolvimento de aplicações customizadas.

Informações Importantes

Todas as requisições devem ser feitas para a URL base: http://127.0.0.1:8000/api/v1/

Os dados são enviados e recebidos no formato JSON. Para acessar endpoints protegidos, é necessário incluir um token de autenticação no cabeçalho das requisições.

Autenticação

A API utiliza autenticação baseada em token. Para acessar os endpoints protegidos, você deve primeiro obter um token de autenticação através do endpoint de login, e então incluí-lo no cabeçalho Authorization das requisições subsequentes.

Login

POST
http://127.0.0.1:8000/api/v1/auth/login

Autentica um usuário no sistema e retorna um token de acesso.

Cabeçalhos

Cabeçalho Tipo Obrigatório Descrição
Content-Type string Sim Deve ser definido como application/json
Accept string Não Define o tipo de resposta esperada (padrão: application/json)

Corpo da Requisição

Parâmetro Tipo Obrigatório Descrição
email string Sim Email do usuário
password string Sim Senha do usuário

Exemplo de Requisição

{
  "email": "usuario@exemplo.com",
  "password": "senha123"
}

Logout

POST
http://127.0.0.1:8000/api/v1/auth/logout

Encerra a sessão do usuário atual e invalida o token de acesso.

Cabeçalhos

Cabeçalho Tipo Obrigatório Descrição
Authorization string Sim Token de autenticação no formato Bearer {token}
Content-Type string Não Deve ser definido como application/json
Accept string Não Define o tipo de resposta esperada

Usuários

Endpoints para gerenciamento de usuários do sistema. Todos os endpoints desta seção requerem autenticação.

Listar Usuários

GET
http://127.0.0.1:8000/api/v1/users

Retorna uma lista de todos os usuários do sistema.

Cabeçalhos

Cabeçalho Tipo Obrigatório Descrição
Authorization string Sim Token de autenticação no formato Bearer {token}
Content-Type string Não Deve ser definido como application/json
Accept string Não Define o tipo de resposta esperada

Obter Usuário

GET
http://127.0.0.1:8000/api/v1/users/{id}

Retorna informações detalhadas de um usuário específico.

Parâmetros de URL

Parâmetro Tipo Obrigatório Descrição
id integer Sim ID do usuário a ser recuperado

Cabeçalhos

Cabeçalho Tipo Obrigatório Descrição
Authorization string Sim Token de autenticação no formato Bearer {token}
Accept string Não Define o tipo de resposta esperada
Content-Type string Não Deve ser definido como application/json

Exemplo de Requisição

GET http://127.0.0.1:8000/api/v1/users/2
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Exemplos de Uso

Abaixo estão exemplos completos de como utilizar a API em diferentes linguagens de programação.

Exemplo 1: Login em Python

import requests

url = "http://127.0.0.1:8000/api/v1/auth/login"
payload = {
    "email": "usuario@exemplo.com",
    "password": "senha123"
}
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

if response.status_code == 200:
    token = data.get("token")
    print(f"Token de autenticação: {token}")
else:
    print(f"Erro: {data.get('message')}")

Exemplo 2: Listar Usuários em JavaScript (Fetch)

const token = "SEU_TOKEN_AQUI";
const url = "http://127.0.0.1:8000/api/v1/users";

fetch(url, {
    method: "GET",
    headers: {
        "Authorization": `Bearer ${token}`,
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
})
.then(response => response.json())
.then(data => {
    console.log("Usuários:", data);
})
.catch(error => {
    console.error("Erro:", error);
});

Exemplo 3: cURL - Fluxo Completo

# 1. Autenticação
curl -X POST http://127.0.0.1:8000/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"email":"usuario@exemplo.com","password":"senha123"}'

# 2. Listar usuários (com token obtido no passo 1)
curl -X GET http://127.0.0.1:8000/api/v1/users \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  -H "Accept: application/json"

# 3. Obter usuário específico
curl -X GET http://127.0.0.1:8000/api/v1/users/2 \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  -H "Accept: application/json"

# 4. Logout
curl -X POST http://127.0.0.1:8000/api/v1/auth/logout \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  -H "Content-Type: application/json"

Códigos de Erro

A API retorna códigos de status HTTP padrão para indicar o resultado das requisições.

Código Nome Descrição
200 OK A requisição foi bem-sucedida
201 Created Recurso criado com sucesso
400 Bad Request A requisição está malformada ou contém parâmetros inválidos
401 Unauthorized Autenticação necessária ou token inválido
403 Forbidden Usuário não tem permissão para acessar o recurso
404 Not Found Recurso não encontrado
500 Internal Server Error Erro interno do servidor

Boas Práticas

Sempre verifique o código de status HTTP antes de processar a resposta da API. Em caso de erro (códigos 4xx ou 5xx), a resposta geralmente incluirá um objeto JSON com detalhes sobre o erro.