2.6 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7fb1367417b2b2512bf1 | Bereitstellen von JSON auf einer bestimmten Route | 2 | 301517 | serve-json-on-a-specific-route |
--description--
Während ein normaler HTML-Server HTML liefert, liefert eine API Daten. Eine REST-API (REpresentational State Transfer) erlaubt Datenaustausch auf eine einfachere Art und Weise – ohne dass Nutzer Details über den Server wissen müssen. Der Benutzer muss hierbei lediglich den Ort der Quelle (die URL) sowie die hier auszuführende Aktion wissen (das Verb). Das GET-Verb wird bei reinen Datenaufrufen benutzt – ohne etwas zu ändern. Heutzutage ist das für Datentransfers bevorzugte Format JSON. Einfach ausgedrückt: JSON ist eine bequeme Möglichkeit, mit einem JavaScript-Objekt als String zu arbeiten, um Datenübertragungen zu erleichtern.
Lass uns eine einfache API erstellen, indem wir eine JSON zurückgebende Route unter dem Pfad /json
erstellen. Du kannst das – wie immer – mit der app.get()
-Methode machen. Benutze innerhalb des Route-Handlers die Methode res.json()
, und übergebe ihr ein Objekt als Argument. Diese Methode schließt die Anfrage-Antwort-Schleife und gibt die Daten zurück. Hinter den Kulissen wird hierbei ein gültiges JavaScript-Objekt in einen String konvertiert, anschließend werden die entsprechenden Header gesetzt, um deinen Browser mitzuteilen, dass du JSON-Daten lieferst – danach werden die Daten zurückgegeben. Ein gültiges Objekt hat die bekannte Struktur {key: data}
. data
kann hierbei eine Nummer, ein String, ein verschachteltes Objekt oder ein Array sein. data
kann auch eine Variable, oder das Ergebnis eines Function-Calls sein, in diesem Fall werden die Daten vor Umwandlung in einen String überprüft.
--instructions--
Liefere das Objekt {"message": "Hello json"}
im JSON-Format als Antwort, um GET-Anfragen der /json
-Route zu beantworten. Wenn du anschließend mit deinem Browser your-app-url/json
aufrufst, solltest du die Nachricht auf deinem Bildschirm sehen.
--hints--
Der Endpunkt /json
sollte das JSON-Objekt {"message": "Hello json"}
liefern
(getUserInput) =>
$.get(getUserInput('url') + '/json').then(
(data) => {
assert.equal(
data.message,
'Hello json',
"The '/json' endpoint does not serve the right data"
);
},
(xhr) => {
throw new Error(xhr.responseText);
}
);
--solutions--
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/