Criação de uma API Bio

Mais uma vez utilizando o Node.js vamos criar uma aplicação que permite uma API CRUD que vai representar varias Bios de diferentes utilizadores.
Passo 1.
mkdir (nome do diretorio)-Criar diretório para o projeto
Passo 2.
npm init- Comando para iniciar o projeto e criar as pastas base para a nossa API
No final será criado o ficheiro package.json. Este ficheiro guarda informações sobre o projeto e também sobre as suas dependências.
Passo 3.
npm install --save express body-parser mongoose
Através deste comando criamos as dependencias necessarias para a app
Passo 4.
Para a estrutura da API, podemos utilizar uma estrutura semelhante á seguinte:

Passo 5.
Para o model (RegistoModel.js):

Este codigo introduz os campos nome, email, telefone, morada e data de criação ao modelo geral que vai servir como estrutura de dados para os dados dos utilizadores inscritos na API.
Passo 5.1
Para o ficheiro das Routes RegistoRoutes.js:

Passo 6
Para o controller RegistoController.js:
// Import Bio Model
Bio = require ('./RegistoModel');// For index
exports.index = function (req, res) {
Bio.get (function (err, bio) {
if (err)
res.json ({
status: "error",
message: err
});
res.json ({
status: "OK",
message: "Bios Successfully Obtained",
date: bio
});
});
};// Create new BIO
exports.add = function (req, res) {
var bio = new Bio ();
bio.name = req.body.name? req.body.name: bio.name;
bio.email = req.body.email;
bio.telef = req.body.telef;
bio.morada = req.body.morada; // Save and check for errors
bio.save (function (err) {
if (err)
res.json (err); res.json ({
message: "New Bio Added!",
date: bio
});
});
};// See Bio
exports.view = function (req, res) {
Bio.findById (req.params.bio_id, function (err, bio) {
if (err)
res.send (err);
res.json ({
message: 'Bio details',
date: bio
});
});
};// Update Bio
exports.update = function (req, res) {
Bio.findById (req.params.bio_id, function (err, bio) {
if (err)
res.send (err);
bio.name = req.body.name? req.body.name: bio.name;
bio.email = req.body.email;
bio.telef = req.body.telef;
bio.morada = req.body.morada; // Save and check for errors
bio.save (function (err) {
if (err)
res.json (err)
res.json ({
message: "Bio Updated Successfully",
date: bio
});
});
});
};// Delete Bio
exports.delete = function (req, res) {
Bio.deleteOne ({
_id: req.params.bio_id
}, function (err, contact) {
if (err)
res.send (err)
res.json ({
status: "OK",
message: 'Bio Eliminated!'
});
});
};
Testar a API:
Através de localhost:6666/api/testar (definido na Route), podemos testar a nossa API e verificar que tudo está a funcionar corretamente.


