Grundlegendes zu URLs und Routen

Abgeschlossen

Eine Anwendung verfügt über eine Vielzahl von Daten, die sie verwaltet, z. B. Produkte oder Bestellungen. Organisieren Sie als Entwickler für Tailwind Traders Ihre APIs in Abschnitte für den Datentyp. Die Verwendung von Abschnitten hilft Ihnen bei der Verwaltung und Erweiterung der App.

Eine einfache Möglichkeit, eine Webanwendung zu erweitern, besteht darin, dafür zu sorgen, dass die Daten über spezielle URLs zugänglich sind. Zwei unterschiedliche URLs lösen jeweils andere Teile des Codes in Ihrer Webanwendung aus.

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

Diese Einheit beschreibt, was eine URL ist, um eine API zu erstellen.

URL-Pfad

Eine URL ist eine Adresse, die ein Benutzer in einen Client wie einen Browser eingibt, um einen bestimmten Server und eine bestimmte Funktionalität zu suchen. Wenn Sie wissen, wie die URL funktioniert, können Sie Ihre App entsprechend organisieren.

Hier sehen Sie eine typische URL: http://localhost:8000/products/1?page=1&pageSize=20

Die URL entspricht einer Syntax, die wie folgt aussieht:

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

Erläutern wir die Teile für die Beispiel-URL: https://tailwindtraders.com/products/1?page=1&pageSize=20#sort=asc.

URL-Komponente Beispiel Beschreibung
Schema https Das verwendete Protokoll, z http. B. , , https, ftp, irc oder file.
Behörde tailwindtraders.com Besteht aus optionalen Benutzerinformationen und einem Host, bei dem es sich in der Regel um einen Domänennamen handelt.
Pfad /products/1 Null bis viele Segmente durch einen Schrägstrich (/), der die ressourcen angibt, an denen Sie interessiert sind.
Abfrage page=1&pageSize=20 Optionaler Teil, der nach dem ? Zeichen definiert ist und aus Parameter-Wert-Paaren besteht, um Daten weiter zu filtern.
Fragment sort=asc Hilft Ihnen, noch spezifischer zu sein, z. B. das Sortieren der Daten in einer bestimmten Reihenfolge.

Jede Route kann Aktionen wie Erstellen, Lesen, Aktualisieren und Löschen (als CRUD bezeichnet) haben. Die Aktion wird durch die Route-Methode angegeben und mit zusätzlichen Informationen kombiniert, die in den HTTP-Headern und dem Textkörper gesendet werden.

HTTP-Handler

Express ist ein Webframework, mit dem Sie HTTP-APIs erstellen können. Verwenden Sie sie zum Erstellen von Routen, die HTTP-Anforderungen verarbeiten.

Hier ist ein Beispiel für Code, der HTTP-Anforderungen für die URL /products/114verarbeitet:

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

Das Format des Handlers lautet app.<method>(<route>, <callback>). Die Anforderung für die Route /products/114 mit der GET-Methode führt den Code in der Funktion aus, der Zugriff auf die eingehende Anforderung (req) hat und die Antwort (res) zurückgibt.

Dieser Code kann umgeschrieben werden, um das Lesen zu vereinfachen:

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

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

In Ihrer Arbeit bei Tailwind Traders müssen Sie möglicherweise in Express-Apps mit beiden Codestilen arbeiten.

Eingehende Daten

Daten können auf verschiedene Arten an die API gesendet werden:

Daten Location Erklärung
Routenparameter /products/:id, wobei :id der Parameter Routenparameter sind Teil der URL. Sie werden verwendet, um eine bestimmte Ressource zu identifizieren. Die Datenlänge ist auf die zulässige Länge der URL beschränkt, sodass sie in der Regel kurz ist, z. B. eine ID oder einen Namen. Eine Route kann mehrere Parameter aufweisen.
Query parameter (Abfrageparameter) /products?page=1&pageSize=20, wobei ?page=1&pageSize=20 der Parameter Abfrageparameter sind Teil der URL. Sie werden verwendet, um Daten zu filtern. Die Datenlänge ist auf die zulässige Länge der URL beschränkt, sodass sie in der Regel kurz ist, z. B. eine ID oder einen Namen. Eine Route kann mehrere Abfrageparameter aufweisen.
Anforderungstext POST /products Der Anforderungstext ist Teil der HTTP-Anforderung. Es wird verwendet, um Daten an die API zu senden. Die Datenlänge ist nicht auf die zulässige Länge der URL beschränkt, sodass sie lang sein kann. Der HTTP-Header gibt der API den Typ der Daten an, z. B. Text, JSON oder Binärdatei.

Eingehende Daten entsprechen in der Regel den folgenden Methoden basierend auf dem Zweck der Aktion:

Aktion Methode Daten
Erstellen POST Anforderungstext
Lesen GET Routen- und Abfrageparameter
Aktualisieren PUT Anforderungstext
Löschen DELETE Routen- und Abfrageparameter

Tipp

Der erste Buchstabe jeder Methode schreibt CRUD. Diese Begriffe werden in der Branche verwendet, um die vier grundlegenden Arten von Vorgängen zu beschreiben, die für Daten ausgeführt werden können.

Route-Parameterbeispiel mit req.params

Gehen Sie davon aus, dass die Anforderungs-URL lautet /products/20. Die Express-Route zum Verarbeiten dieser Anforderung lautet:

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

    // get product that matches id from database
})

Beispiel für eine Abfragezeichenfolge mit req.query

Gehen Sie davon aus, dass die Anforderungs-URL lautet /products?page=1&pageSize=20. Die Express-Route zum Verarbeiten dieser Anforderung lautet:

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

    // get next page of products from database
})

Anforderungstextbeispiel mit req.body

Angenommen, die Anforderungs-URL ist /products und der Anforderungstext ist { "name": "Product 1" }. Die Express-Route zum Verarbeiten dieser Anforderung lautet:

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

    // add new product to database
})