Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/gabrielcoutz/node-api
- Owner: GabrielCoutz
- Created: 2023-02-19T17:03:09.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-27T02:21:34.000Z (9 months ago)
- Last Synced: 2024-04-23T19:10:27.561Z (8 months ago)
- Topics: api, jwt-token, nodejs, restful-api, typescript
- Language: HTML
- Homepage: https://node-api-kappa-rust.vercel.app
- Size: 1.59 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
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 XDconst 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 XDconst 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: