olist-anuncios
v1.0.2
Published
Api de Anuncios
Downloads
2
Readme
Olist API v0.0.1
Resumo
Está api fornece uma interface para manutenção de anúncios, no formato RESTful, como backend foi utilizado o Expressjs. Está API fornece os 4 métodos HTTP: GET, POST, DELETE e UPDATE
API valida todos os dados enviados antes de persistir na base.
Base de dados usado é MySQL
Instalação
Criação da Base de dados
Executar o seguinte script SQL em uma base de dados previamente selecionada:
CREATE TABLE IF NOT EXISTS `anuncios` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`categoria` ENUM('produto','serviço') NOT NULL,
`titulo` VARCHAR(60) NOT NULL,
`descricao` TEXT NOT NULL,
`estoque` INT(11) NOT NULL DEFAULT 0,
`preco` DECIMAL(10,2) NOT NULL,
`embalagem_largura` FLOAT(11) NULL DEFAULT NULL,
`embalagem_altura` FLOAT(11) NULL DEFAULT NULL,
`embalagem_profundidade` FLOAT(11) NULL DEFAULT NULL,
`embalagem_peso` FLOAT(11) NULL DEFAULT NULL,
`status` TINYINT(1) NOT NULL DEFAULT 0,
`vendedor_nome` VARCHAR(40) NOT NULL,
`vendedor_telefone` VARCHAR(15) NOT NULL,
`vendedor_email` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
Configurações
Antes de executar a aplicação, é necessário realizar algumas configurações. Abra o arquivo:
config/default.yaml
E configure a porta e os dados para conexão na base.
Exemplo:
server: 9000
database:
client: 'mysql'
host: 'localhost'
user: 'root'
password: '*****'
database: 'database'
Mais detalhes sobre o sistema de configuração consulte: https://github.com/lorenwest/node-config
API
Refêrencia
| Endpoint | Descrição | | ---- | --------------- | | GET /api/:id | Recupera um anúncio pelo id fornecido | | POST /api/ | Cadastra um anúncio | | PUT /api/:id | Atualiza anúncio pelo id fornecido, | | DELETE /api/:id | Remove um anúncio |
Formato
Os dados devem ser enviado no formato JSON e serão entregue no formato JSON.
Validação
Caso ocorra erro de validação, um json de erro será retornado :
Exemplo:
{
error: true,
errors: [
'Título Obrigatório',
'Descrição Obrigatório',
'Embalagem Altura deve ser decimal',
'Embalagem Profundidade deve ser decimal',
'Embalagem Peso deve ser decimal',
'Status deve ser valor Booleano',
'Telefone do vendedor inválido',
'E-mail do vendedor inválido',
'Nome do vendedor Obrigatório',
'Telefone do vendedor Obrigatório',
'E-mail do vendedor Obrigatório',
'Título deve ter no máximo 60 letras',
'Categoria deve ser produto ou serviço',
'Estoque deve ser inteiro',
'Preço deve ser decimal',
'Embalagem Largura deve ser decimal'
]
}
Autor
André Timermann E-mail: [email protected] - 2015
Nota: Aplicação desenvolvida para fins de avaliação, não deve ser usada em ambiente de produção.