A API Íris eCom permite aos usuários gerenciar suas contas e interagir com produtos e categorias de maneira eficiente. Com uma interface RESTful simples, a API possibilita operações de CRUD (Create, Read, Update, Delete) tanto para usuários quanto para produtos e categorias, garantindo flexibilidade para desenvolvedores em integrar funcionalidades de e-commerce de forma ágil.
- Cadastrar um novo usuário.
- Buscar informações do usuário.
- Atualizar os dados do usuário.
- Excluir um usuário.
- Cadastrar novos produtos.
- Buscar produtos existentes.
- Atualizar detalhes de produtos.
- Excluir produtos.
- Cadastrar novas categorias de produtos.
- Buscar categorias.
- Atualizar informações de categorias.
- Excluir categorias.
- URL: /apiUsuario
- Método: POST
- Descrição: Cria um novo usuário no sistema.
- Corpo da Requisição:
{
"nome": "string",
"email": "string",
"senha": "string",
"cep": "string",
"endereco": "string",
"bairro": "string",
"cidade": "string",
"uf": "string",
"cpf": "string",
"dataNascimento": "2024-09-24",
"imagem": "string"
}
{
"id": 8,
"nome": "Usuário Exemplo",
"email": "email@exemplo.com",
"senha": "12345678",
"cep": "09876543",
"endereco": "Exemplo",
"bairro": "Exemplo",
"cidade": "Exemplo",
"uf": "SP",
"cpf": "1234567899",
"dataNascimento": "2024-09-24",
"imagem": "Exemplo"
}
2. Buscar dados do usuário
- URL: /buscarId/{id}
- Método: GET
- Descrição: Retorna os detalhes de um usuário específico.
- Resposta de Sucesso (200 - OK):
{
"id": 8,
"nome": "Usuário Exemplo",
"email": "email@exemplo.com",
"senha": "12345678",
"cep": "09876543",
"endereco": "Exemplo",
"bairro": "Exemplo",
"cidade": "Exemplo",
"uf": "SP",
"cpf": "1234567899",
"dataNascimento": "2024-09-24",
"imagem": "Exemplo",
"produtos": []
}
3. Buscar todos os usuários
- URL: /api/Usuario
- Método: GET
- Descrição: Retorna todos os usuários cadastrados no sistema.
- Resposta de Sucesso (200 - OK):
[{
"id": 8,
"nome": "Usuário Exemplo",
"email": "email@exemplo.com",
"senha": "12345678",
"cep": "09876543",
"endereco": "Exemplo",
"bairro": "Exemplo",
"cidade": "Exemplo",
"uf": "SP",
"cpf": "1234567899",
"dataNascimento": "2024-09-24",
"imagem": "Exemplo",
"produtos": []
},
{
"id": 9,
"nome": "Usuário Exemplo",
"email": "email@teste.com",
"senha": "",
"cep": "",
"endereco": "Exemplo",
"bairro": "Exemplo",
"cidade": "Exemplo",
"uf": "SP",
"cpf": "1234567899",
"dataNascimento": "2024-09-24",
"imagem": "Exemplo",
"produtos": []
}
]
4. Buscar dados do usuário por email
- URL: /buscarEmail/{email}
- Método: GET
- Descrição: Retorna os detalhes de um usuário específico.
- Resposta de Sucesso (200 - OK):
{
"id": 8,
"nome": "Usuário Exemplo",
"email": "email@exemplo.com",
"senha": "12345678",
"cep": "09876543",
"endereco": "Exemplo",
"bairro": "Exemplo",
"cidade": "Exemplo",
"uf": "SP",
"cpf": "1234567899",
"dataNascimento": "2024-09-24",
"imagem": "Exemplo",
"produtos": []
}
5. Atualizar dados do usuário
- URL: /api/Usuario
- Método: PUT
- Descrição: Atualiza as informações de um usuário.
- Corpo da Requisição:
{
"id": 0,
"nome": "string",
"email": "string",
"senha": "string",
"cep": "string",
"endereco": "string",
"bairro": "string",
"cidade": "string",
"uf": "string",
"cpf": "string",
"dataNascimento": "2024-09-24",
"imagem": "string"
}
- Resposta de Sucesso (200 - OK):
{
"id": 9,
"nome": "Usuário Exemplo Atualizado",
"email": "emailAtualizado@teste.com",
"senha": "",
"cep": "",
"endereco": "Exemplo Atualizado",
"bairro": "Exemplo Atualizado",
"cidade": "Exemplo Atualizado",
"uf": "SP",
"cpf": "1234567899",
"dataNascimento": "2024-09-24",
"imagem": "Exemplo"
}
6. Excluir usuário
- URL: /api/Usuario/{id}
- Método: DELETE
- Descrição: Remove um usuário do sistema.
- Resposta de Sucesso (404 - Not Found):
Usuário não encontrado. O usuário foi excluído.
- URL: /api/Produto
- Método: POST
- Descrição: Adiciona um novo produto ao catálogo.
- Corpo da Requisição:
{
"nome": "string",
"descricao": "string",
"preco": 0,
"infoTecnica": "string",
"quantidade": 0,
"imagem": "string",
"categoriaId": 0,
"usuarioId": 0
}
- Resposta de Sucesso (201 - Created):
{
"id": 14,
"nome": "Processador",
"descricao": "Exemplo",
"preco": 500,
"infoTecnica": "Exemplo",
"quantidade": 45,
"imagem": "Exemplo",
"categoriaId": 1,
"usuarioId": 8
}
2. Atualizar um produto
- URL: /api/Produto
- Método: PUT
- Descrição: Atualiza as informações de um produto existente.
- Corpo da Requisição:
{
"id": 0,
"nome": "string",
"descricao": "string",
"preco": 0,
"infoTecnica": "string",
"quantidade": 0,
"imagem": "string",
"categoriaId": 0,
"usuarioId": 0
}
- Resposta de Sucesso (200 - OK):
{
"id": 14,
"nome": "Processador Atualizado",
"descricao": "Exemplo Atualizado",
"preco": 500,
"infoTecnica": "Exemplo Atualizado",
"quantidade": 50,
"imagem": "Exemplo Atualizado",
"categoriaId": 1,
"usuarioId": 8
}
3. Buscar produtos
- URL: /api/Produto
- Método: GET
- Descrição: Retorna uma lista de produtos cadastrados.
- Resposta de Sucesso (200 - OK):
[
{
"id": 14,
"nome": "Processador Atualizado",
"descricao": "Exemplo Atualizado",
"preco": 500,
"infoTecnica": "Exemplo Atualizado",
"quantidade": 50,
"imagem": "Exemplo Atualizado",
"categoriaId": 1,
"categoria": {
"id": 1,
"nome": "Hardware",
"imagem": "https://placehold.co/900x200",
"produtos": []
},
"usuarioId": 8
}
]
4. Buscar produto por id
- URL: /BuscaPorId{id}
- Método: GET
- Descrição: Retorna os detalhes de um produto específico.
- Resposta de Sucesso (200 - OK):
{
"id": 14,
"nome": "Processador Atualizado",
"descricao": "Exemplo Atualizado",
"preco": 500,
"infoTecnica": "Exemplo Atualizado",
"quantidade": 50,
"imagem": "Exemplo Atualizado",
"categoriaId": 1,
"categoria": {
"id": 1,
"nome": "Hardware",
"imagem": "https://placehold.co/900x200",
"produtos": []
},
"usuarioId": 8
}
5. Buscar produto por nome
- URL: /BuscaPorNome{nome}
- Método: GET
- Descrição: Retorna uma lista de produtos com o nome especificado.
- Resposta de Sucesso (200 - OK):
[
{
"id": 14,
"nome": "Processador Atualizado",
"descricao": "Exemplo Atualizado",
"preco": 500,
"infoTecnica": "Exemplo Atualizado",
"quantidade": 50,
"imagem": "Exemplo Atualizado",
"categoriaId": 1,
"categoria": {
"id": 1,
"nome": "Hardware",
"imagem": "https://placehold.co/900x200",
"produtos": []
},
"usuarioId": 8
}
]
6. Buscar produto por categoria
- URL: /BuscaPorCategoria{codigo}
- Método: GET
- Descrição: Retorna uma lista de produtos com a categoria especificado.
- Resposta de Sucesso (200 - OK):
[
{
"id": 14,
"nome": "Processador Atualizado",
"descricao": "Exemplo Atualizado",
"preco": 500,
"infoTecnica": "Exemplo Atualizado",
"quantidade": 50,
"imagem": "Exemplo Atualizado",
"categoriaId": 1,
"categoria": {
"id": 1,
"nome": "Hardware",
"imagem": "https://placehold.co/900x200",
"produtos": []
},
"usuarioId": 8
}
]
7. Excluir um produto
- URL: /api/Produto/{id}
- Método: DELETE
- Descrição: Remove um produto do sistema.
- Resposta de Sucesso (404 - Not Found)
Produto não encontrado. O produto foi excluído.
- URL: /api/Categoria
- Método: POST
- Descrição: Adiciona uma nova categoria de produtos.
- Corpo da Requisição:
{
"nome": "string",
"imagem": "string"
}
- Resposta de Sucesso (201 - Created):
{
"id": 9,
"nome": "Tablets",
"imagem": "exemplo"
}
2. Atualizar uma categoria
{
"id": 0,
"nome": "string",
"imagem": "string"
}
- Resposta de Sucesso (200 - OK):
{
"id": 9,
"nome": "Tablets Atualizado",
"imagem": "Exemplo Atualizado"
}
3. Buscar uma categoria
{
"id": 9,
"nome": "Tablets Atualizado",
"imagem": "Exemplo Atualizado"
}
4. Buscar categorias por nome
[
{
"id": 9,
"nome": "Tablets Atualizado",
"imagem": "Exemplo Atualizado"
}
]
5. Buscar todas as categorias
[
{
"id": 9,
"nome": "Tablets Atualizado",
"imagem": "Exemplo Atualizado"
}
]
6. Excluir uma categoria
- URL: /api/Categoria{id}
- Método: DELETE
- Descrição: Remove uma categoria do sistema.
- Resposta de Sucesso (404 - Not Found)
Categoria não encontrada. A categoria foi excluída.
- Motivo: O recurso solicitado não foi encontrado.
- Exemplo de Resposta:
Usuário não encontrado.
2. 400 - Bad Request
- Motivo: Já existe um usuário cadastrado com o mesmo email.
- Exemplo de Resposta:
Usuário já cadastrado.
3. 500 - Internal Server Error
- Motivo: Ocorreu um erro inesperado no servidor.
- Exemplo de Resposta:
{
"error": "Erro interno do servidor"
}
- ASP NET 8
- xUnit para o projeto de teste
- SQL Server
- Postman
- Swagger
- Ter o .Net 8 instalado;
- Ter de preferência o Visual Studio instalado;
- Ter SQL Server Instalado.
git clone https://github.com/thamirespereira/Iris-eCom.git
- NewtonsoftJson
- EntityFrameworkCore
- EntityFrameworkCore.Sql
- EntityFrameworkCore.Tools
- Swashbuckle.AspNetCore
- Execute o script sql de criação que se encontra na pasta SQL;
- Execute o script de inserção para uma melhor experiência ao utilizar nosso Front-End.
- No projeto, navegue até o arquivo appsettings.json;
- Mude a Connection String conforme o exemplo:
"ConnectionStrings": {
"DefaultConnection": "Server=nomeDoSeuServidor;Initial Catalog=db_irisecom;Trusted_Connection=True;TrustServerCertificate=true;MultipleActiveResultSets=true;Encrypt=False",
}
Para garantir a qualidade e a robustez da API, utilizamos uma suíte de testes automatizados. Aqui estão as instruções para executar os testes.
1. Clone o repositório:
git clone https://github.com/thamirespereira/Iris-eCom.git
- Moq
- RestSharp