https://github.com/arielbetti/api-challenge
API desenvolvida com Node.js e JWT para autenticação com web token.
https://github.com/arielbetti/api-challenge
Last synced: about 2 months ago
JSON representation
API desenvolvida com Node.js e JWT para autenticação com web token.
- Host: GitHub
- URL: https://github.com/arielbetti/api-challenge
- Owner: ArielBetti
- License: mit
- Created: 2019-09-30T00:16:27.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-22T12:39:45.000Z (over 2 years ago)
- Last Synced: 2025-02-02T14:19:18.596Z (4 months ago)
- Language: JavaScript
- Homepage:
- Size: 802 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# API-Challenge
> API desenvolvida em Nodejs com JWT para autenticação.
## Versão sem Geospatial Queries.
Essa versão da API não utiliza Geospatial Queries.
Desenvolvi um algoritmo que faz o cálculo de geolocalização direto na Querie, fazendo com que o banco de dados apenas seja utilizado para trazer dados.## Instalação
```sh
git clone https://github.com/ArielBetti/API-Challenge
```
Dentro do projeto de um npm install```sh
npm install
```## Como iniciar o projeto
Se você estiver utiizando o Visual Studio Code basta precionar a tecla **F5** dentro do projeto.
Caso o Visual Studio Code reclame na execução provavelmente você terá que fazer uma alteração no arquivo **launch.json** dentro da sua pasta **.vscode**, assim como eu mostro na imagem a baixo.
### Se preferir pode rodar em modo desenvolvimento
Confira se você possui o pacote **yarn** na sua máquina, presente no **package.json** desse projeto.
```sh
yarn dev
```## Como utilizar essa API
#### Passo a passo
Essa API possui o pacote **JWT** sendo assim você precisa se autenticar primeiro na API, você pode fazer isso com o software que preferir, nesse exemplo estarei utiizando o **Insomnia**#### Caso não tenha um usuário de acesso.
Caso você já tenha um usuário de acesso pule essa etapa.
Esse serviço está rodando na porta **8080** então vamos utilizar a URL **localhost:8080/auth/register** e o tipo de requisição é um **POST**, por tanto escolha **JSON** no body para passar os Parâmetros, assim como na imagem a baixo.
#### Autenticando na API
Utilize email e senha para se autenticar na API, esse serviço está rodando na porta **8080** então vamos utilizar a URL **localhost:8080/auth/login** e o tipo de requisição é um **POST**, por tanto escolha **JSON** no body para passar os Parâmetros, assim como na imagem a baixo.
![]()
### Importante !
Perceba que junto aos dados do usuário retornou um **Token** copie ele pois vai precisar no próximo passo.### Buscando um serviço
Para buscar um serviço você precisa estar autenticado na API, para isso passe o seu **Token** obtido no login.
Essa rota possibilita que o cliente busque por um serviço de **OIL_CHANGE** ou **DRY_WASHING** dentro de um raio de **10 quilometros** passando latitude e longitude para API.
Preste bastante atenção aos passos para que tudo de certo !#### 1º Configurando requisição
Primeiro vamos configurar o ***header*** da nossa requisição passando o ***Token*** para ela.
Lembrando que o serviço está escutando na porta **8080** então vamos utilizar a **URL** **localhost:8080/auth/findpartner** e o tipo de requisição é **POST**
O nome do **header** deve ter **Authorization** e o valor deve começar com a palavra **Bearer** seguida de um espaço com o **Token**, em alguns casos o seu software vai precisar que você deixe explicito o tipo da aplicação no header como é o caso do **Insomina** então adicione o um novo header com o nome **Content-Type** com o valor **application/json**.
#### 2º Passando Parâmetros
Apôs configurar o seu ***header*** vamos configurar os seus parâmetros no **body** passando para ele **"availableServices"** que é o tipo de serviço que você procura podendo ser **OIL_CHANGE** ou **DRY_WASHING** ou até mesmo os dois, **lat** que é a sua latitude e **long** que é a sua longitude.
Tudo deve conter o formato **JSON** assim como eu represento na imagem a baixo.### Pronto você utilizou com sucesso a minha API !
## Sobre
Criador: **Ariel Betti**
Email: **[email protected]**Distribuído sob a licença MIT. Veja `LICENSE` para mais informações.
## Como contribuir
1. Faça o _fork_ do projeto.
2. Crie uma _branch_ para sua modificação (`git checkout -b feature/fooBar`)
3. Faça o _commit_ (`git commit -am 'Add some fooBar'`)
4. _Push_ (`git push origin feature/fooBar`)
5. Crie um novo _Pull Request_