Información sobre las direcciones URL y las rutas

Completado

Una aplicación tiene una variedad de datos que administra, como productos o pedidos. Como desarrollador de Tailwind Traders, organice las API en secciones para el tipo de datos. El uso de secciones le ayuda a mantener y ampliar la aplicación.

Una forma sencilla de ampliar una aplicación web consiste en asegurarse de que se pueda acceder a los datos mediante direcciones URL dedicadas. Dos direcciones URL distintas desencadenan dos partes diferentes del código en la aplicación web.

https://tailwindtraders.com/products
https://tailwindtraders.com/orders

En esta unidad se describe qué es una dirección URL para crear una API.

Ruta de acceso URL

Una dirección URL es una dirección que un usuario escribe en un cliente, como un explorador, para encontrar un servidor específico y una funcionalidad específica. Saber cómo funciona la dirección URL le ayuda a organizar la aplicación en torno a ella.

Esta es una dirección URL típica: http://localhost:8000/products/1?page=1&pageSize=20

La dirección URL se ajusta a una sintaxis similar a esta:

scheme:[//authority]path[?query][#fragment]

Vamos a explicar las partes de la dirección URL de ejemplo: https://tailwindtraders.com/products/1?page=1&pageSize=20#sort=asc.

Componente de URL Ejemplo Descripción
Scheme https Protocolo usado, como http, https, ftp, irc o file.
Autoridad tailwindtraders.com Consta de información de usuario opcional y un host, que suele ser un nombre de dominio.
Path /products/1 Cero en muchos segmentos separados por una barra diagonal (/), especificando los recursos que le interesan.
Consultar page=1&pageSize=20 Parte opcional definida después del carácter ?, que consta de pares de parámetros y valores para filtrar los datos aún más.
Fragmento sort=asc Le ayuda a tener más precisión, como ordenar los datos en un orden determinado.

Cada ruta puede tener acciones como crear, leer, actualizar y eliminar (conocido como CRUD). La acción se indica mediante el método de ruta y se combina con información adicional enviada en los encabezados y el cuerpo HTTP.

Controladores HTTP

Express es un marco web que le ayuda a crear API HTTP. Úselo para crear rutas que controlen las solicitudes HTTP.

Este es un ejemplo de código que controla las solicitudes HTTP para la dirección URL /products/114:

app.get('/products/:id', (req, res) => {
  // handle this request `req.params.id`
})

El formato del controlador es app.<method>(<route>, <callback>). La solicitud de la ruta /products/114 con el método GET ejecuta el código de la función que tiene acceso a la solicitud entrante (req) y devuelve la respuesta (res).

Este código se puede reescribir para facilitar la lectura:

const routeHandler = (incomingRequest, outgoingResponse) => {
  // handle this request
}

app.get('/products/:id', routeHandler)

En su trabajo en Tailwind Traders, es posible que tenga que trabajar en aplicaciones Express con cualquier estilo de código.

Datos de entrada

Los datos se pueden enviar a la API de varias maneras:

Data Location Explicación
Parámetro de ruta /products/:id, donde :id es el parámetro Los parámetros de ruta forman parte de la dirección URL. Se usan para identificar un recurso específico. La longitud de los datos se limita a la longitud permitida de la dirección URL, por lo que suele ser corta, como un identificador o un nombre. Una ruta puede tener varios parámetros.
Parámetro de consulta /products?page=1&pageSize=20, donde ?page=1&pageSize=20 es el parámetro Los parámetros de consulta forman parte de la dirección URL. Se usan para filtrar los datos. La longitud de los datos se limita a la longitud permitida de la dirección URL, por lo que suele ser corta, como un identificador o un nombre. Una ruta puede tener varios parámetros de consulta.
Cuerpo de la solicitud POST /products El cuerpo de la solicitud forma parte de la solicitud HTTP. Se usa para enviar datos a la API. La longitud de los datos no se limita a la longitud permitida de la dirección URL, por lo que puede ser larga. El encabezado HTTP indica a la API el tipo de datos como texto, JSON o binario.

Los datos entrantes suelen coincidir con los métodos siguientes en función del propósito de la acción:

Action Método Data
Crear POST Cuerpo de la solicitud
Leer GET Parámetros de ruta y consulta
Actualizar PUT Cuerpo de la solicitud
Eliminar Delete Parámetros de ruta y consulta

Sugerencia

La primera letra de cada método escribe CRUD. Estos términos se usan en el sector para describir los cuatro tipos básicos de operaciones que se pueden realizar en los datos.

Ejemplo de parámetro de ruta con req.params

Supongamos que la dirección URL de la solicitud es /products/20. La ruta rápida para controlar esta solicitud es:

app.get('/products/:id', (req, res) => {
    const id = req.params.id

    // get product that matches id from database
})

Ejemplo de cadena de consulta con req.query

Supongamos que la dirección URL de la solicitud es /products?page=1&pageSize=20. La ruta rápida para controlar esta solicitud es:

app.get('/products', (req, res) => {
    const page = req.query.page
    const pageSize = req.query.pageSize

    // get next page of products from database
})

Ejemplo del cuerpo de la solicitud con req.body

Supongamos que la dirección URL de la solicitud es /products y que el cuerpo de la solicitud es { "name": "Product 1" }. La ruta rápida para controlar esta solicitud es:

app.post('/products', (req, res) => {
    const name = req.body.name

    // add new product to database
})