Creación de una API

Creación de una API con node.js

Primeros pasos

Configuración de eslint

express

https://www.guru99.com/images/NodeJS/010716_0613_NodejsExpre1.png

Iniciar y testear a mano nuestra API

"start": "node app/server.js"
git status
echo "node_modules">.gitignore
git status
git add -A *
git commit -m "Primera versión API"
git push

nodemon

npm i -D nodemon
"start": "nodemon app/server.js"

Uso de enrutadores

Recibir parámetros

Parámetros por url

router.get('/:nombre', function(req, res) {
  res.json({ mensaje: '¡Hola' + req.params.nombre })
})

Parámetros por post

Ejemplo con body-parser

Rutas de nuestra API

Ruta Verbo http Descripción
/api/cervezas GET Obtenemos todas las cervezas
/api/cervezas/search?q=keyword GET Obtenemos cervezas por keyword
/api/cervezas/:id GET Obtenemos los datos de una cerveza
/api/cervezas POST Damos de alta una cerveza
/api/cervezas/:id PUT Actualizamos los datos de una cerveza
/api/cervezas/:id DELETE Borramos los datos de una cerveza
  var router = require('express').Router()
  var cervezas = require('./cervezas')

  router.use('/cervezas', cervezas)

  router.get('/', function (req, res) {
    res.status(200).json({ message: 'Estás conectado a nuestra API' })
  })

  module.exports = router
  var router = require('express').Router()
  router.get('/search', function(req, res) {
    res.json({ message: 'Vas a buscar una cerveza' })
  })
  router.get('/', function(req, res) {
    res.json({ message: 'Estás conectado a la API. Recurso: cervezas' })
  })
  router.get('/:id', function(req, res) {
    res.json({ message: 'Vas a obtener la cerveza con id ' + req.params.id })
  })
  router.post('/', function(req, res) {
    res.json({ message: 'Vas a añadir una cerveza' })
  })
  router.put('/:id', function(req, res) {
    res.json({ message: 'Vas a actualizar la cerveza con id ' + req.params.id })
  })
  router.delete('/:id', function(req, res) {
    res.json({ message: 'Vas a borrar la cerveza con id ' + req.params.id})
  })
  module.exports = router

Acceso a base de datos

Instalación de MongoDB

Inserción de datos

Instalación de Mongoose

Uso de Mongoose

Modelos

Uso de controladores

Test desde el navegador o mediante Postman

Test de la API

npm i -D mocha supertest
'use strict'
/* global describe it */
var request = require('supertest')

/*obtenemos nuestra api rest que vamos a testear*/
var app = require('../app/server')

describe('Crear una nueva cerveza', function() {
  it('Crea la cerveza retornando 201', function(done) {
    request(app)
      .post('/api/cervezas/')
      .set('Accept', 'application/json')
      .expect('Content-Type', /json/)
      .send({
        'Nombre': 'DAMN',
        'Descripción': 'Mi cerveza preferida',
        'Graduación': '10º',
        'Envase': 'Bidón',
        'Precio': '1 eurito'
      })
      .expect(201, done)
  })
})

Uso de middlewares


Revision #1
Created 19 April 2023 18:07:08 by molombo
Updated 19 April 2023 18:12:03 by molombo