Förstå URL:er och vägar
Ett program har en mängd olika data som det hanterar, till exempel produkter eller beställningar. Som utvecklare för Tailwind Traders organiserar du dina API:er i avsnitt för typen av data. Med hjälp av avsnitt kan du underhålla och utöka appen.
Ett enkelt sätt att utöka en webbapp är att se till att data är tillgängliga via dedikerade URL:er. Två olika URL:er utlöser två olika delar av koden i webbappen.
https://tailwindtraders.com/products
https://tailwindtraders.com/orders
I den här lektionen beskrivs vad en URL är för att skapa ett API.
URL-sökväg
En URL är en adress som en användare anger i en klient, till exempel en webbläsare, för att hitta en specifik server och en specifik funktion. Att känna till hur en URL fungerar hjälper dig att organisera din app runt den.
Här är en typisk URL: http://localhost:8000/products/1?page=1&pageSize=20
URL:en följer en syntax som ser ut så här:
scheme:[//authority]path[?query][#fragment]
Nu ska vi förklara delarna för exempel-URL:en: https://tailwindtraders.com/products/1?page=1&pageSize=20#sort=asc
.
Adresskomponent | Exempel | beskrivning |
---|---|---|
Schema | https |
Det protokoll som används, till exempel http , https , ftp , irc eller file . |
Utfärdare | tailwindtraders.com |
Består av valfri användarinformation och en värd, som vanligtvis är ett domännamn. |
Sökväg | /products/1 |
Noll till många segment avgränsade med ett snedstreck (/ ), vilket anger vilka resurser du är intresserad av. |
Fråga | page=1&pageSize=20 |
Valfri del definierad efter ? tecknet, bestående av parameter/värdepar för att filtrera data ytterligare. |
Fragment | sort=asc |
Hjälper dig att vara ännu mer specifik, till exempel att sortera data i en viss ordning. |
Varje väg kan ha åtgärder som att skapa, läsa, uppdatera och ta bort (kallas CRUD). Åtgärden anges med routningsmetoden och kombineras med ytterligare information som skickas i HTTP-huvudena och brödtexten.
HTTP-hanterare
Express är ett webbramverk som hjälper dig att skapa HTTP-API:er. Använd den för att skapa vägar som hanterar HTTP-begäranden.
Här är ett exempel på kod som hanterar HTTP-begäranden för URL:en /products/114
:
app.get('/products/:id', (req, res) => {
// handle this request `req.params.id`
})
Hanterarens format är app.<method>(<route>, <callback>)
. Begäran för vägen /products/114
med GET-metoden kör koden i funktionen som har åtkomst till den inkommande begäran (req
) och returnerar svaret (res
).
Den här koden kan skrivas om så att den blir enklare att läsa:
const routeHandler = (incomingRequest, outgoingResponse) => {
// handle this request
}
app.get('/products/:id', routeHandler)
I ditt arbete på Tailwind Traders kan du behöva arbeta i Express-appar med någon av kodformaten.
Inkommande data
Data kan skickas till API:et på flera sätt:
Data | Plats | Förklaring |
---|---|---|
Routningsparameter | /products/:id , där :id är parametern |
Routningsparametrar är en del av URL:en. De används för att identifiera en specifik resurs. Datalängden är begränsad till den tillåtna längden på URL:en, så den är vanligtvis kort, till exempel ett ID eller ett namn. En väg kan ha flera parametrar. |
Frågeparameter | /products?page=1&pageSize=20 , där ?page=1&pageSize=20 är parametern |
Frågeparametrar är en del av URL:en. De används för att filtrera data. Datalängden är begränsad till den tillåtna längden på URL:en, så den är vanligtvis kort, till exempel ett ID eller ett namn. En väg kan ha flera frågeparametrar. |
Begärandetext | POST /products |
Begärandetexten är en del av HTTP-begäran. Den används för att skicka data till API:et. Datalängden är inte begränsad till den tillåtna längden på URL:en så den kan vara lång. HTTP-huvudet anger för API:et typen av data, till exempel text, JSON eller binär. |
Inkommande data matchar vanligtvis följande metoder baserat på syftet med åtgärden:
Åtgärd | Metod | Data |
---|---|---|
Skapa | POST | Begärandetext |
Läs | GET | Routnings- och frågeparametrar |
Update | PUT | Begärandetext |
Delete | DELETE | Routnings- och frågeparametrar |
Dricks
Den första bokstaven i varje metod stavar CRUD. Dessa termer används i branschen för att beskriva de fyra grundläggande typer av åtgärder som kan utföras på data.
Exempel på routningsparameter med req.params
Anta att begärande-URL:en är /products/20
. Express-vägen för att hantera den här begäran är:
app.get('/products/:id', (req, res) => {
const id = req.params.id
// get product that matches id from database
})
Exempel på frågesträng med req.query
Anta att begärande-URL:en är /products?page=1&pageSize=20
. Express-vägen för att hantera den här begäran är:
app.get('/products', (req, res) => {
const page = req.query.page
const pageSize = req.query.pageSize
// get next page of products from database
})
Exempel på begärandetext med req.body
Anta att begärande-URL:en är /products
och att begärandetexten är { "name": "Product 1" }
. Express-vägen för att hantera den här begäran är:
app.post('/products', (req, res) => {
const name = req.body.name
// add new product to database
})