https://d226lax1qjow5r.cloudfront.net/blog/blogposts/variables-and-chaining-requests-in-postman/Blog_Postman2_1200x600.png

Verwendung von Variablen und Verkettung von Anfragen in Postman

Zuletzt aktualisiert am April 20, 2021

Lesedauer: 4 Minuten

Bei Vonage verwenden wir OpenAPI, um alle unsere APIs zu beschreiben, und wir machen diese Spezifikationen auch öffentlich zugänglich. Eine unserer Lieblingsaufgaben mit einer OpenAPI-Datei, die wir noch nicht gesehen haben, ist der Import in Postman. Deshalb haben wir beschlossen, es weiterzugeben und eine Postman-Sammlung für unsere APIs zu erstellen, damit das Auswerten und Erforschen der APIs schneller und einfacher denn je ist.

In diesem Artikel zeigen wir Ihnen, wie Sie die Erkundung Ihrer APIs in Postman noch angenehmer gestalten können. Wir werden Folgendes verwenden Die Vonage APIs Postman-Sammlung als Beispiel, also gehen Sie die Liste der Voraussetzungen durch, wenn Sie mitmachen wollen.

Voraussetzungen

Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.

In diesem Lernprogramm wird auch eine virtuelle Telefonnummer verwendet. Um eine zu erwerben, gehen Sie zu Rufnummern > Rufnummern kaufen und suchen Sie nach einer Nummer, die Ihren Anforderungen entspricht.

Variablen sind Ihre Freunde

Wenn Sie zum ersten Mal die Vonage APIs-Sammlung in Postman importieren, sehen Sie eine Vonage-APIs Ordner erscheinen unter Sammlungen auf der linken Seite Ihres Bildschirms.

Image of Vonage APIs Collection folder in Postman

Vielleicht bemerken Sie auch die "36 Anfragen" unter dem Namen der Sammlung. Abhängig von der Art der Autorisierung sind das mehr oder weniger 36 Mal, die jemand hinzufügen müsste api_key und api_secret als Anfrageparameter hinzufügen.

Glücklicherweise unterstützt Postman Umgebungsvariablen, globale Variablen und Variablen auf Sammlungsebene, die allesamt die Erfahrung viel reibungsloser und weniger schmerzhaft machen werden. Anstatt wiederholte Aufgaben auszuführen, wie z. B. das Ausfüllen der gleichen Parameterwerte für jede Anfrage, ermöglichen uns diese Variablen, diese Werte dynamisch einzuziehen.

Unsere Kollektion wird mit einer Vonage-Umgebung in der Sie Ihren Schlüssel und Ihr Geheimnis angeben können, so dass alle Anfragen diese Werte verwenden.

Image of Vonage Environment in Postman

Auf diese Weise kann eine einfache Anfrage wie die Abfrage des Kontostands mit der Account-API mit einem Mausklick möglich.

Image of Get Account Balance request with the Vonage Account API

Einige andere Anfragen können zusätzliche Parameter erfordern. Zum Beispiel, um Senden einer SMSzu senden, müssen Sie folgende Angaben machen to, from und text in den Anfragetext einfügen, aber api_key und api_secret würden trotzdem automatisch ausgefüllt werden. Sie können jeden dieser Parameter auch als Variable hinzufügen, so wie die to Nummer als Sammlungsvariable in der unten gezeigten Anfrage gespeichert wurde. Sie können dies erreichen, indem Sie entweder Ihre Sammlung oder Umgebung direkt bearbeiten, oder indem Sie den fest kodierten Wert, den Sie durch eine Variable ersetzen möchten, auswählen und auf Als Variable festlegen > Als neue Variable festlegen.

Image of turning the phone number from the to field into a variable by selecting it and pressing the Set as variable button

Verkettung von Anträgen

Variablen in Postman sind großartig, aber sie sind kein universelles Werkzeug, um alle lästigen Dinge zu lösen.
Wenn Sie zum Beispiel eine der Vonage-APIs verwenden, die sich mit JWTs authentifizieren, müssen Sie diese JWTs generieren, bevor Sie Ihre Anfrage stellen. Um das JWT zu generieren, benötigen Sie eine Anwendungs-ID und einen privaten Schlüssel, die Sie beide erhalten, wenn Sie eine Vonage-Anwendung erstellen. Das bedeutet, dass man drei separate Anfragen stellen muss, was jemanden, der die API zum ersten Mal erkundet, verwirren kann.

Glücklicherweise gibt es auch für mehrstufige Voraussetzungen eine Abhilfe: die Verkettung von Anfragen.
Postman bietet zwei Bereiche für die Skripterstellung, Vor-Anfrage-Skript und Tests, in denen Sie jeden beliebigen JavaScript-Code schreiben können - ja, auch eine weitere HTTP-Anfrage.

Das Pre-Request-Skript

Die Vonage Voice API authentifiziert sich mit JSON-Web-Tokens (JWTs), so dass Sie zum Senden eines einen ausgehenden Anruf erstellen Anfrage zu senden, müssen wir das zuerst tun:

  1. Erstellen einer Vonage-Anwendung mit der Applications API

  2. Nehmen Sie die application_id und private_key Werte aus dem Antwortobjekt und verwenden Sie sie, um ein JWT zu erzeugen.

// Check if we already have a JSON Web Token, continue if not
if (!pm.environment.has("JWT")) {
    var btoa = require('btoa')
    let base64keyandsecret = btoa(`${pm.environment.get("api_key")}:${pm.environment.get("api_secret")}`)

// (1) Create a Voice Application by making a request to the Vonage Applications API
    pm.sendRequest({
        url: 'https://api.nexmo.com/v2/applications',
        method: 'POST',
        header: [`Authorization:Basic ${base64keyandsecret}`, "Content-Type: application/json"],
        body: JSON.stringify({
            "name": "Demo Postman Application",
            "capabilities": {
                "voice": {
                    "webhooks": {
                        "answer_url": {
                            "address": "https://example.com/webhooks/answer",
                            "http_method": "POST"
                        },
                        "event_url": {
                            "address": "https://example.com/webhooks/event",
                            "http_method": "POST"
                        }
                    }
                }
            }
        })
    }, (err, res) => {
// (2) Generate JWT using the application ID as a claim and sign it with the private key
        pm.sendRequest({
            url: 'https://jwtapi-dev.netlify.app/.netlify/functions/generate',
            method: 'POST',
            header: ["Content-Type: application/json"],
            body: JSON.stringify({
                algorithm: "RS256",
                private_key: res.json().keys.private_key,
                claims: {
                    application_id: res.json().id,
                    exp: parseInt((Date.now() / 1000) + 3600, 10)
                }
            })
        }, (err, res) => {
            pm.environment.set("JWT", res.json().signed_jwt)
        })
    })
}

Tests: Warum kein Post-Request-Skript?

Mit Postman können Sie Tests zu einzelnen Anfragen, Ordnern und Sammlungen hinzufügen. Diese Tests sind zwar sehr nützlich, um sicherzustellen, dass sich Ihre API wie erwartet verhält, und für die Fehlersuche, aber hier kommt der Clou: Tests sind JavaScript-Skripte, die ausgeführt werden, nachdem eine Anfrage erfolgt ist. Das bedeutet, dass die Art und Weise, wie wir das Pre-Request-Skriptverwendet haben, können wir das Beste aus dem Test Bereich auch nutzen.

In unserem Voice-Aufruf-Beispiel speichere ich nach erfolgreichem Abschluss die voice_call_uuid als Sammelvariable mit der pm.collectionVariables.set() Funktion. Diese Variable wird nützlich sein, wenn ich mich entschließe, weitere Anfragen an die Voice API zu stellen. Bei einem Fehlschlag lösche ich alternativ den JWT Wert mit Hilfe des pm.environment.unset("JWT") Ausdruck, so dass ich meine Anfrage erneut senden und ein neues JWT erzeugen kann.

if (pm.response.code == "201") {
    pm.collectionVariables.set("voice_call_uuid", pm.response.json().uuid);
} else {
    pm.environment.unset("JWT")
}

Lesen Sie mehr über die Definition von Variablen in Skripten in der Postman-Dokumenten.

Der Antragstext

Zum Schluss wollen wir das alles zusammenfügen, um einen Text-to-Speech-Anruf zu tätigen. Sie können den unten stehenden Ausschnitt verwenden und die to und from entweder als Variablen oder als fest kodierte Werte angeben. Denken Sie daran, dass to die Zielnummer ist, die Sie anrufen wollen, und from eine Ihrer Vonage Numbers ist. Holen Sie sich eine in Ihrem Dashboard wenn Sie das noch nicht getan haben.

Die NCCO ist unser Anrufsteuerungsobjekt, das alle Aktionen auflistet, die ausgeführt werden, sobald der Anruf entgegengenommen wird. Sehen Sie sich die NCCO-Referenz und sehen Sie sich an, welche anderen Aktionen Sie in Ihren Anrufablauf aufnehmen können.

{
    "to": [
        {
            "number": {{to}},
            "type": "phone"
        }
    ],
    "from": {
        "number": {{from}},
        "type": "phone"
    },
    "ncco": [
        {
          "action": "talk",
          "text": "This is a text to speech call from Vonage"
        }
      ]
}

Diese Anfrage ist jetzt startklar, also drücken Sie die Senden Knopf. Herzlichen Glückwunsch! Und wissen Sie, was das Beste an der ganzen Sache ist? Wenn Sie Ihre Änderungen speichern und Sammlung freigebenspeichern, muss die nächste Person nur noch die fehlenden Variablenwerte eintragen und auf die Schaltfläche Senden Taste drücken.

Wie würden Sie diese praktischen Postman-Funktionen nutzen? Haben Sie irgendwelche Tipps und Tricks? Lassen Sie es uns wissen; wir sind gespannt, was Sie sich einfallen lassen!

Wie geht es weiter?

Teilen Sie:

https://a.storyblok.com/f/270183/372x373/36054b72d0/julia-biro.png
Julia BiroAdvokat für Entwickler

Julia hat es sich zur Aufgabe gemacht, andere Entwickler durch die Erstellung von Tutorials, Anleitungen und praktischen Ressourcen zu unterstützen. Mit ihrem Hintergrund in den Bereichen Öffentlichkeitsarbeit und Bildung möchte sie Technologien zugänglicher machen und die Erfahrung von Entwicklern insgesamt verbessern. Man kann sie oft bei lokalen Veranstaltungen antreffen.