A continuación podemos ver una simple Api RESTful con NodeJS.
Esto es una continuación del post: API RESTful
A nivel de archivos encontramos los siguientes
- index.js -> este posee la definición de las rutas y la inicilización del servidor.
- package.json -> posee las especificaciones de la aplicación y los node-modules necesarios
- endpoitns/personas.js -> en este se encuentran cada uno de las operaciones sobre personas.
- models/personas.js -> en este archivo se encuentra un array de objetos para ser usados como datos del sistema.
Archivo: index.js
Como en toda aplicación con NodeJS iniciamos con incluyendo los paquetes necesarios
- express: framework para realizar aplicaciones Web
- body-parser: utilizado para interpretar los datos recibidos en el request de la petición
Al trabajar con express necesitamos generar la aplicación y configurarla
const app = express();
// configuro la api
app.use(bodyParser.urlencoded({ extended:false}));
app.use(bodyParser.json());
Posteriormente incluimos los endpoint para cada petición
//incluyo los endpotins
const personas = require('./endpoint/personas');
Posteriormente definimos las rutas de nuestra api
app.get('/personas', personas.GetPersonas);
app.get('/personas/:id', personas.GetPersonaById);
app.post('/personas', personas.SavePersona);
app.put('/personas/:id', personas.EditPersona);
app.delete('/personas/:id',personas.DelPersona);
Donde en cada ruta tenemos que definir
- El metodo http, los cuales estamos usando get, post, put y delete
- Luego la ruta a implementar, en el caso de aquellas donde necesitamos recibir parámetros los indicamos con «:» antes del nombre a indicarle
- Finalmente la función/handler dentro del endpoint a invocar para esa ruta
Una vez definidas las rutas, hacemos que express escuche el puerto.
app.listen(port,()=>{
console.log("ApiREST runnint on port:"+port);
})
Archivo: endpoints/personas.js
En este archivo tenemos las funciones definidas para cada una de las rutas
1.- Listar todos los datos
function GetPersonas(req, res){
res.set('Content-Type', 'application/json');
res.send(JSON.stringify(data.Sample));
}
Cada función definida para cada ruta debe tener los parámetros
- Response (res): Este es utilizado para responder al cliente que consume el endpoint, del response utilizamos las siguientes funciones, en los ejemplos desarrollados
- set(): para setear el tipo de dato de retorno
- send(): para mandar la respuesta
- sendStatus(): respondemos con el estado HTTP, utilizado los codigos definidos en el protocolo (link)
- Request (req): Por medio de este obtenernos los datos enviados
1.- Retornar los datos solicitados
function GetPersonaById(req, res){
let personaId = req.params.id;
let respuesta = data.Sample.find(sample => sample.Id === personaId);
if (respuesta == null){
res.sendStatus(404);
}else{
res.set('Content-Type', 'application/json');
res.send(JSON.stringify(respuesta));
}
}
Con la linea de código req.params.id obtenemos el «id» definido en la ruta por lo cual podemos obtener el id indicado en /personas/3
En el siguiente repositorio de GitHub se tienen la APIRest completa <link>, el resto del código es fácil de interpretar por eso no lo escribo todo acá, puesto que es para que sea como una referencia mínima al como codificar la API
Pingback: API RESTful – Otro Del Montón
Pingback: sildenafil citrate 100mg
Pingback: reputable overseas online pharmacies
Pingback: us based essay writing service
Pingback: college application essay help online
Pingback: trusted online pharmacy cialis
Pingback: where to buy female viagra usa
Pingback: cialis samples
Pingback: buying cialis online usa
Pingback: where can buy viagra
Pingback: cialis drug class
Pingback: tadalafil drug interactions
Pingback: gabapentin nz
Pingback: sandoz azithromycin 900 mg
Pingback: spiraldynamics
Pingback: Spiral Dynamics
Pingback: does bactrim affect birth control
Pingback: vxi.su
Pingback: cozaar side effects anxiety
Pingback: site
Pingback: baclofen dose
Pingback: side effects of buspar
Pingback: repaglinide and pregnancy
Pingback: acarbose instructions
Pingback: remeron
Pingback: sitagliptin saxagliptin linagliptin and alogliptin
Pingback: mutual of omaha rx pharmacy
Pingback: cialis online pills
Pingback: stromectol tablets buy online
Pingback: animal porn
Pingback: ananın amı
Pingback: child porn
Pingback: neurontin medication
Pingback: ampicillin continuous infusion
Pingback: anastrozole vs tamoxifen quality of life
Pingback: ciprofloxacin side effects in elderly
Pingback: porn
Pingback: Cocuk pornosu
Pingback: child porn
Pingback: child porn
Pingback: child porn
Pingback: fuck
Pingback: child porn
Pingback: sex
Pingback: spam
Pingback: porn
Pingback: crestor people's pharmacy
Pingback: mexican pharmacy online medications
Pingback: baclofen inhouse pharmacy
Pingback: starzbet
Pingback: starzbet