Projeto desenvolvido para um desafio da niceplanet objetivo de realizar o desafio de simular a criação de uma API que possibilita à indústria cadastrar os produtores e as propriedades de sua carteira de clientes para serem monitoradas pela Niceplanet.
ESPECIFICAÇÕES TÉCNICAS: Node JS, Mysql
utilizando as bibliotecas node: express, jsonwebtoken, mysql2 e sequelize.
Para fazer o clone do projeto utilize o comando no terminal:
git clone https://github.com/stefanluks/Niceplanet-Backend.git
Executando o comando para acessar a pasta do projeto.
Para instalar todas as bibliotecas do JS necessarios para o projeto, e em seguida execute.
Irá executar o projeto em modo de desenvolvimento.
Que pode ser testado no navegador no endereço: http://localhost:8080
Para acessar as demais rotas é necessario está autenticado no sistema, e para isso é feito uma requesição do tipo POST
Deve ser enviado um Json com os dados do usuario que deseja entrar, por exemplo:
{
"nomeUsuario":"Stefan Lucas",
"senhaUsuario": "slas@123#"
}
Com isto o sistema deve retornar a confirmação da efetuação do login, passando um token para o acesso.
{
"error": false,
"mensagem": "Login Realizado!!",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NSwiaWF0IjoxNjg0MTczMTAwLCJleHAiOjE2ODQ0MzIzMDB9.366XFWtNdpoBcBwP18OtePtrUNoYadDqsqEZyVztd00"
}
Este Token deve ser passado para a aplicação no cabeçalho no Bearer para validar a autenticação no sistema.
http://localhost:8080/cadastrar
Para cadastrar um novo usuário no sistema deve ser feito atráves dessa rota executando uma requesição do tipo POST
Deve ser enviado um Json com os dados do usuario que deseja cadastrar, por exemplo:
{
"nomeUsuario":"Stefan Silva",
"senhaUsuario": "slas@123#"
}
Com isto o sistema deve retornar a confirmação do cadastro no banco de dados.
{
"error": false,
"mensagem": "cadastrado com sucesso!"
}
http://localhost:8080/AddProdutorPropriedade
Nesta rota é executado uma requesição do tipo POST para adicionar nos produtores ou propriedades
Para isso deve ser enviado um Json com os dados que deseja cadastrar, exemplo:
{
"produtor":{
"nomeProdutor":"Stefan Lucas",
"cpfProdutor":"03851345177"
}, "propiedade":{
"nomePropriedade":"Chacara SL",
"cadastroRural":"00XX0115322247C65"
}
}
É possivel também cadastrar individualmente os itens, por exemplo o cadastrar apenas do produtor passando seus atributos:
{
"produtor":{
"nomeProdutor":"Stefan Lucas",
"cpfProdutor":"03851345177"
}
}
Sendo possivel tambem o cadastro apenas da propriedade passando apenas os dados dela:
{
"propiedade":{
"nomePropriedade":"Chacara SL",
"cadastroRural":"00XX0115322247C65"
}
}
http://localhost:8080/Get/{idProdutor-idPropriedade}
Nesta rota um usuário autenticado pode fazer uma requisição do tipo GET no bando de dados atráves da API. É possível buscar por um produtor e/ou propriedade pelos seus id's.
Para isso o usuário deve passar como parâmentro esses ids separados por um um hifén, Por exemplo:
http://localhost:8080/Get/22
O sistema deve retornar um json com os dados do produtor caso exista no banco de dados.
{
"idProdutor":22,
"nomeProdutor":"Stefan Lucas",
"cpfProdutor":"03851345177"
}
E para buscar apenas uma propriedade é possível adicionando um hifén antes do id, por exemplo:
http://localhost:8080/Get/-4
O sistema deve retornar um json com os dados do propriedade caso exista no banco de dados.
{
"idPropriedade":4,
"nomePropriedade":"Terra dos sonhos",
"cadastroRural":"01XX4563222472345"
}
E para buscar ambos deve ser seguir a ordem de idProdutor seguido de hifén e por fim o idPropriedade.
http://localhost:8080/Get/22-4
O sistema deve retornar um json com os dados do produtor e da propriedade caso existam no banco de dados.
{
"produtor":{
"idProdutor":22,
"nomeProdutor":"Stefan Lucas",
"cpfProdutor":"03851345177"
},
"propriedade":{
"idPropriedade":4,
"nomePropriedade":"Terra dos sonhos",
"cadastroRural":"01XX4563222472345"
}
}