Información sobre las direcciones URL y las rutas
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
})