Rutas RESTful en Node.js

Enrutamiento: el enrutamiento es una de las partes más importantes de su sitio web o aplicación web. El enrutamiento en Express es básico, adaptable y robusto. El enrutamiento es el mecanismo mediante el cual las requests (según lo especificado por una URL y un método HTTP) se enrutan (dirigen) al código que las maneja.

¿Qué es el enrutamiento RESTful?
REST significa Transferencia de estado representacional que proporciona una forma de mapear verbos HTTP (obtener, publicar, colocar, eliminar) y acciones CRUD (crear, leer, actualizar, eliminar) juntas. Es una convención para definir rutas y cuando algo sigue el principio de descanso se le conoce como RESTFUL.

En lugar de depender únicamente de la URL para indicar qué sitio visitar, una ruta RESTful también depende del verbo HTTP y la URL.

Esto significa que cuando su aplicación recibe una solicitud HTTP, introspecciona esa solicitud e identifica el método HTTP y la URL, lo conecta con una acción de controlador correspondiente que tiene ese método y URL, ejecuta el código en esa acción y determina qué respuesta obtiene. enviado de vuelta al cliente.

Internet sería un lugar realmente confuso sin una convención sobre cómo manejar las URL: eliminar una foto de Facebook podría ser www.facebook.com/delete-this-photo, pero en Instagram, podría ser www.instagram.com/remove -esta publicación. Sin una convención específica a seguir, sería difícil crear contenido nuevo, editar contenido y eliminarlo. Las rutas RESTful proporcionan un patrón de diseño que permite una fácil manipulación de datos.

Para que una ruta sea completamente Relajante debe hacer lo siguiente:

  • Separe el cliente del servidor.
  • No mantener estado entre requests (es decir, toda la información necesaria para responder a una solicitud está disponible en cada solicitud: ningún dato o estado es retenido por el servidor de solicitud a solicitud).
  • Utilice métodos HTTP y HTTP.
  • Sea confiable (por ejemplo, la mayoría de las API siguen el patrón de ruta tranquila al especificar el proceso de autenticación y las URL importantes).

Hay 7 patrones de rutas tranquilas diferentes a seguir al crear una aplicación o servicio web que interactuará con el servidor.

Ejemplo: para un sitio web de blog, estas rutas se definirían como:

Asegúrese de tener Node , npm y mongoDB instalados.

Instalando los paquetes y creando el esquema:

npm install express
npm install method-override
npm install mongoose

Nombre de archivo: app.js

var express = require('express');
var app = express();
var methodOverride = require("method-override");
  
// APP config
mongoose.connect("mongodb://localhost/restful_blog_app");
app.set("view engine", "ejs");
app.use(express.static("public"));
app.use(methodOverride("_method"));
  
// Creating the schema
var blogSchema = new mongoose.Schema({
    title: String,
    image: String,
    body: String,
    created: {type: Date, default: Date.now}
});
  
var Blog = mongoose.model("Blog", blogSchema);
  
app.listen(process.env.PORT, process.env.IP, function() {
    console.log("SERVER IS RUNNING!");
})

Nombre: ÍNDICE

app.get("/blogs", function(req, res) {
    Blog.find({}, function(err, blogs) {
        if (err) {
            console.log("ERROR!");
        } else {
           res.render("index", {blogs: blogs}); 
        }
    });
 });

Nombre: NUEVO

app.get("/blogs/new", function(req, res) {
     res.render("new");
 });

Nombre: CREAR

app.post("/blogs", function(req, res) {
       
     // create blog
  
     Blog.create(req.body.blog, function(err, newBlog) {
         if (err) {
             res.render("new");
         } else {
             //then, redirect to the index
             res.redirect("/blogs");
         }
     });
 });

Nombre: MOSTRAR

app.get("/blogs/:id", function(req, res) {
    Blog.findById(req.params.id, function(err, foundBlog) {
        if (err) {
            res.redirect("/blogs");
        } else {
            res.render("show", {blog: foundBlog});
        }
    })
 });

Nombre: EDITAR

app.get("/blogs/:id/edit", function(req, res) {
    Blog.findById(req.params.id, function(err, foundBlog) {
        if (err) {
            res.redirect("/blogs");
        } else {
            res.render("edit", {blog: foundBlog});
        }
    });
})

Nombre: ACTUALIZAR

app.put("/blogs/:id", function(req, res) {
 req.body.blog.body = req.sanitize(req.body.blog.body)
    
 Blog.findByIdAndUpdate(req.params.id, 
   req.body.blog, function(err, updatedBlog) {
      if (err) {
          res.redirect("/blogs");
      }  else {
          res.redirect("/blogs/" + req.params.id);
      }
 });
});

Nombre: DESTRUIR

app.delete("/blogs/:id", function(req, res) {
   //destroy blog
   Blog.findByIdAndRemove(req.params.id, function(err) {
       if (err) {
           res.redirect("/blogs");
       } else {
           res.redirect("/blogs");
       }
   })
   //redirect somewhere
});

La estructura del proyecto se verá así:

Este artículo se centra principalmente en el archivo app.js. El estilo se puede hacer según su preferencia.

Finalmente, después de crear las rutas y agregar el estilo según sus preferencias, ejecute esto en su línea de comando:

node app.js

Esta fue una descripción realmente simple de qué es el enrutamiento RESTful y cuál es su uso práctico en los sitios web.

Publicación traducida automáticamente

Artículo escrito por siddhantdugar241 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *