Grundlegendes zu URLs und Routen
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/114
verarbeitet:
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
})