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

https://github.com/micalevisk/my-node-rest-api

:x: [deprecated] REST API with Node.js, Express 4 & MongoDB đźš§
https://github.com/micalevisk/my-node-rest-api

api body-parser es5-javascript express javascript nodejs rest

Last synced: 11 months ago
JSON representation

:x: [deprecated] REST API with Node.js, Express 4 & MongoDB đźš§

Awesome Lists containing this project

README

          

# My first REST API
> todo example [Creating a Simple RESTful Web App with Node.js, Express, and MongoDB](http://cwbuecheler.com/web/tutorials/2014/restful-web-app-node-express-mongodb/)

> vide [Node API Examples](https://github.com/laedanthehuman/node-api-examples)

> vide [Design de API REST, em 7 dicas simples](http://sensedia.com/blog/apis/design-de-api-rest)

> vide [Construindo uma API Rest com ExpressJS - NodeJS](https://pt-br.eventials.com/wbruno.moraes/construindo-uma-api-rest-com-expressjs-nodejs-2/)

> vide [Build a RESTful API Using Node and Express 4](https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4)

> read [Boas Práticas JS](https://github.com/wbruno/boas-praticas-js)

> view api doc sample https://github.com/justintv/Twitch-API/blob/master/v3_resources/channels.md

> view api doc sample https://github.com/yagop/node-telegram-bot-api/blob/master/doc/api.md

> view content dispose https://github.com/typicode/json-server

> vide JADE example [How to Use Jade and Handlebars in Express.js](https://webapplog.com/jade-handlebars-express/)

# ¬ TODO
- [ ] documentação na página HTML
- [ ] exemplos de cada método (usando o cURL)
- [ ] autenticação OAuth 2.0
- [ ] organizar seguindo:
```
.
├── app.js
├── package.json
├── README.md
├── bin
│   └── www
├── public
│   ├── javascripts
│   │   └── global.js
│   └── stylesheets
│   └── style.css
├── routes
│   ├── index.js
│   ├── usuarios.js
│   ├── index.js
│   └── questoes.js
├── models
│   ├── bean
│   │ ├── usuarios.js
│   │ └── questoes.js
│   └── dao
│   ├── usuarios.js
│   └── questoes.js
└── views
├── index.jade
└── layout.jade
```

----------

# § métodos

## GET geral AKA endpoints
- [x] `~/usuarios` recupera os usuários
- [x] `~/questoes` recupera as questões
- [x] `~/infos` recupera informações gerais sobre o estado corrente da lista

### ~ USUARIOS
- [x] `GET ~/usuarios/:username` recupera informações de um usuário
- [x] `GET ~/search/usuarios/:username` recupera informações de um usuário (substituir o de cima ^)
- [ ] `POST ~/usuarios/:username?...` insere um usuário (se não houver um com o mesmo nick)
- [ ] `PUT ~/usuarios/:username?...` altera as informações de um usuário
- [ ] `DELETE ~/usuarios/:username` apaga um usuário pelo seu nick
- [x] `POST ~/usuarios/:username/adicionarQuestao?numero=...&pendente=...` adiciona uma questão (número) à lista de questões (e pendências) do usuário
- [ ] `DELETE ~/usuarios/:username/removerPendente?numero=...` remove uma questão (número) da lista de pendências do usuário
- [ ] `DELETE ~/usuarios/:username/removerQuestao?numero=...` remove uma questão (número) da lista de questões e pendências do usuário

### ~ QUESTOES
- [x] `GET ~/questoes/:numero` recupera informações de uma questão pelo seu número
- [x] `GET ~/search/questoes/:numero` recupera informações de uma questão pelo seu número (substituir o de cima ^)
- [x] `POST ~/questoes?numero=...&enunciado=...` insere uma *nova* questĂŁo
- [x] `PUT ~/questoes/:numero` altera as informações de uma questão pelo seu número
- [x] `DELETE ~/questoes/:numero` apaga uma questĂŁo pelo seu nĂşmero

### ~ INFOS
- [x] `PUT ~/infos?...` altera as informações globais

---