Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gabrielcoutz/node-api

API RESTFULL para cadastro e login do usuário, que possui autenticação com JWT.
https://github.com/gabrielcoutz/node-api

api jwt-token nodejs restful-api typescript

Last synced: 29 days ago
JSON representation

API RESTFULL para cadastro e login do usuário, que possui autenticação com JWT.

Awesome Lists containing this project

README

        

# Documentação

#### base url
`https://node-api-git-main-gabrielcoutz.vercel.app`

#### Endpoints
_clique para ir até seus métodos :point_down:_

```javascript
/user -> POST | GET | PATCH | DELETE
```

```javascript
/users -> GET
```

```javascript
/login -> POST
```

#### Informações

- Todos erros são retornados com o objeto `{ message: '...', statusTitle: '...' }`, juntamente do seu código no status, como `404`, `401`, `500`.


- Esta é uma API apenas para fins de testes, estudos e prática, os dados não persistem por muito tempo, sendo resetados periodicamente. Considerem de 10 em 10 minutos.


- Futuramente será adicionado o Typescript para agregar em todo projeto, então peço paciência :grin:


- Qualquer problema, sugestão ou comentário, não hesite em abrir uma issue ou entrar em contato pelo meu linkedin.

---
:large_blue_diamond: Cadastrar dados

```javascript
async function registerUser(user) {
const response = await fetch('/user', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(user),
});
const json = await response.json();

if (!response.ok) console.log(`${json.statusTitle}: ${json.message}`);
else console.log(json);
}

const user = {
name: 'test',
email: '[email protected]',
password: 'test',
};

registerUser(user);
```

Response
```typescript
{
"id": string,
"email": string,
"name": string
}
```
---
:large_blue_diamond::large_blue_diamond: Consultar dados

:small_blue_diamond: Todos usuários
```javascript
async function getUsers() {
const response = await fetch('/users');
const json = await response.json();

if (!response.ok) console.log(`${json.statusTitle}: ${json.message}`);
else console.log(json);
}

getUsers();
```
Response
```typescript
[
{
"id": string,
"email": string,
"name": string
}
]
```

:small_blue_diamond: Um usuário
```javascript
async function getUser(userId) {
const response = await fetch(`/user/${userId}`);
const json = await response.json();

if (!response.ok) console.log(`${json.statusTitle}: ${json.message}`);
else console.log(json);
}

getUser('user_id_123');
```
Response
```typescript
{
"id": string,
"email": string,
"name": string
}
```

---
:large_blue_diamond: Atualizar dados

:heavy_exclamation_mark: precisa estar logado :heavy_exclamation_mark:

```javascript
async function updateUser(userId, payload) {
const token = localStorage.getItem('MyToken'); // if you saved, obviously XD

const response = await fetch(`/user/${userId}`, {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
},
body: JSON.stringify(payload),
});
const json = await response.json();

if (!response.ok) console.log(`${json.statusTitle}: ${json.message}`);
else console.log(json);
}

const user = {
name: 'test updated',
email: '[email protected]',
password: 'test updated',
};

updateUser('user_id_123', user);
```

Response
```typescript
{
"id": string,
"email": string,
"name": string
}
```
---
:large_blue_diamond: Deletar usuário

:heavy_exclamation_mark: precisa estar logado :heavy_exclamation_mark:

```javascript
async function deleteUser(userId) {
const token = localStorage.getItem('MyToken'); // if you saved, obviously XD

const response = await fetch(`/user/${userId}`, {
method: 'DELETE',
headers: {
Authorization: `Bearer ${token}`,
},
});
const json = await response.json();

if (!response.ok) console.log(`${json.statusTitle}: ${json.message}`);
else console.log(json);
}

deleteUser('user_id_123');
```

Response
```typescript
boolean
```

---

#### Login


```javascript
async function login(payload) {
const response = await fetch('/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
const json = await response.json();

if (!response.ok) console.log(`${json.statusTitle}: ${json.message}`);
else console.log(json);
}

const user = {
email: '[email protected]',
password: 'test',
};

login(user);
```

Response
```typescript
{
"token": string,
"id": string
}
```






Feito com :sparkling_heart: por eu mesmo :blush: