Entender URLs e rotas
Um aplicativo tem uma variedade de dados que gerencia, como produtos ou pedidos. Como desenvolvedor da Tailwind Traders, organize suas APIs em seções para o tipo de dados. O uso de seções ajudar você a manter e estender o aplicativo.
Um modo de estender um aplicativo Web com facilidade é garantir que os dados sejam acessíveis por meio de URLs dedicadas. Duas URLs diferentes disparam duas partes diferentes do código no aplicativo Web.
https://tailwindtraders.com/products
https://tailwindtraders.com/orders
Esta unidade descreve o que é uma URL para criar uma API.
Caminho da URL
Uma URL é um endereço que um usuário insere em um cliente, como um navegador, para localizar um servidor específico e uma funcionalidade específica. Saber como a URL funciona ajuda você a organizar o aplicativo com base nisso.
Esta é uma URL típica: http://localhost:8000/products/1?page=1&pageSize=20
A URL segue uma sintaxe que tem a seguinte aparência:
scheme:[//authority]path[?query][#fragment]
Vamos explicar as partes da URL de exemplo: https://tailwindtraders.com/products/1?page=1&pageSize=20#sort=asc
.
Componente de URL | Exemplo | Descrição |
---|---|---|
Esquema | https |
O protocolo usado, como http , https , ftp , irc ou file . |
Autoridade | tailwindtraders.com |
Consiste em informações opcionais do usuário e um host, que geralmente é um nome de domínio. |
Caminho | /products/1 |
Zero a muitos segmentos separados por uma barra (/ ), especificando os recursos nos quais você está interessado. |
Consulta | page=1&pageSize=20 |
Parte opcional definida após o caractere ? , consistindo em pares de parâmetro/valor para filtrar ainda mais os dados. |
Fragmento | sort=asc |
Ajuda você a ser ainda mais específico, como classificar os dados em uma determinada ordem. |
Cada rota pode ter ações como criar, ler, atualizar e excluir (conhecido como CRUD). A ação é indicada pelo método de rota e combinada com informações adicionais enviadas nos cabeçalhos HTTP e no corpo.
Manipuladores HTTP
O Express é uma estrutura da Web que ajuda você a criar APIs HTTP. Use-o para criar rotas que manipulam as solicitações HTTP.
Aqui está um exemplo de código que manipula as solicitações HTTP para a URL /products/114
:
app.get('/products/:id', (req, res) => {
// handle this request `req.params.id`
})
O formato do manipulador é app.<method>(<route>, <callback>)
. A solicitação da rota /products/114
com o método GET executa o código na função que tem acesso à solicitação de entrada (req
) e retorna a resposta (res
).
Esse código pode ser reescrito para facilitar a leitura:
const routeHandler = (incomingRequest, outgoingResponse) => {
// handle this request
}
app.get('/products/:id', routeHandler)
Em seu trabalho na Tailwind Traders, talvez seja necessário trabalhar em aplicativos Express com qualquer um dos estilos de código.
Dados de entrada
Os dados podem ser enviados para a API de várias maneiras:
Dados | Localidade | Explicação |
---|---|---|
Parâmetro da rota | /products/:id , em que :id é o parâmetro |
Os parâmetros de rota fazem parte da URL. Eles são usados para identificar um recurso específico. O comprimento dos dados é limitado ao comprimento permitido da URL, portanto, normalmente é curto, como uma ID ou um nome. Uma rota pode ter vários parâmetros. |
Parâmetro de consulta | /products?page=1&pageSize=20 , em que ?page=1&pageSize=20 é o parâmetro |
Os parâmetros de consulta fazem parte da URL. Eles são usados para filtrar dados. O comprimento dos dados é limitado ao comprimento permitido da URL, portanto, normalmente é curto, como uma ID ou um nome. Uma rota pode ter vários parâmetros de consulta. |
Corpo da solicitação | POST /products |
O corpo da solicitação faz parte da solicitação HTTP. Ele é usado para enviar dados para a API. O comprimento dos dados não está limitado ao comprimento permitido da URL, portanto, pode ser longo. O cabeçalho HTTP indica à API o tipo de dados, como texto, JSON ou binário. |
Os dados de entrada geralmente correspondem aos seguintes métodos com base na finalidade da ação:
Ação | Método | Dados |
---|---|---|
Criar | POST | Corpo da solicitação |
Ler | GET | Parâmetros de rota e consulta |
Atualizar | PUT | Corpo da solicitação |
Excluir | DELETE | Parâmetros de rota e consulta |
Dica
A primeira letra de cada método significa CRUD. Esses termos são usados no setor para descrever os quatro tipos básicos de operações que podem ser executadas em dados.
Exemplo de parâmetro de rota com req.params
Suponha que a URL da solicitação seja /products/20
. A rota do Express para manipular essa solicitação é:
app.get('/products/:id', (req, res) => {
const id = req.params.id
// get product that matches id from database
})
Exemplo de cadeia de caracteres de consulta com req.query
Suponha que a URL da solicitação seja /products?page=1&pageSize=20
. A rota do Express para manipular essa solicitação é:
app.get('/products', (req, res) => {
const page = req.query.page
const pageSize = req.query.pageSize
// get next page of products from database
})
Exemplo do corpo da solicitação com req.body
Suponha que a URL da solicitação seja /products
e o corpo da solicitação seja { "name": "Product 1" }
. A rota do Express para manipular essa solicitação é:
app.post('/products', (req, res) => {
const name = req.body.name
// add new product to database
})