Prisma

Die Arbeit mit APIs ist großartig, aber manchmal muss man nicht mit der echten API arbeiten, um Entwicklungsarbeit zu leisten. Ein Werkzeug, das Sie in Ihren Entwicklungs-Workflow einbauen können, ist Prisma von Ampel. Prism ist ein Mock-Server, der unsere Live-APIs imitiert. Sie können ihn lokal ausführen, um Ihre API-Aufrufe während der Entwicklung zu testen, ohne dass Ihnen Nutzungskosten entstehen.

Prism versteht die OpenAPI specs, die wir für jede unserer APIs veröffentlichen, so dass Sie diesen Ansatz verwenden können, um mit jeder der Vonage APIs zu arbeiten.

Prisma installieren

Prism ist ein node.js-Tool, d. h. Sie müssen node.js lokal installiert haben. Vollständig Dokumentation und Installationsanweisungen sind verfügbar, aber die Schnellversion ist eine npm install Befehl:

npm install -g @stoplight/prism-cli

Überprüfen Sie, ob der Befehl installiert ist und funktioniert, indem Sie prism --version von einem Terminal aus.

Abrufen der OpenAPI-Spezifikation

Um die OpenAPI-Spezifikation für eine unserer APIs zu finden, navigieren Sie zu der entsprechenden API auf der Seite Homepage der Dokumentation. Wählen Sie die API-Referenz aus dem linken Menü aus und laden Sie über die Schaltfläche YAML-Download die API-Spezifikation herunter.

An example of the Download OpenAPI Specification section

Sobald Sie die .yml Datei, die Sie wünschen, können Sie Prism starten.

Einen Mock-Server mit Prism starten

Starten Sie Prism im Terminal mit einem Befehl wie diesem:

prism mock [api-spec.yml]

Für Number Insights API zum Beispiel sehen mein Befehl und seine Ausgabe wie folgt aus:

$ prism mock number-insight.yml
[12:13:06] › [CLI] …  awaiting  Starting Prism…
[12:13:06] › [CLI] ℹ  info      GET        http://127.0.0.1:4010/basic/json?number=1%295-2%209%2B2&country=UV
[12:13:06] › [CLI] ℹ  info      GET        http://127.0.0.1:4010/standard/xml?number=67-64%298427&country=OU&cnam=false
[12:13:06] › [CLI] ℹ  info      GET        http://127.0.0.1:4010/advanced/async/json?callback=sunt%20deserunt%20dolore%20id&number=%2B1208&country=CM&cnam=false&ip=accusamus
[12:13:06] › [CLI] ℹ  info      GET        http://127.0.0.1:4010/advanced/xml?number=-47&country=MU&cnam=false&ip=non
[12:13:06] › [CLI] ▶  start     Prism is listening on http://127.0.0.1:4010

Die letzte Zeile der Ausgabe zeigt Ihnen, wo Prism ausgeführt wird; bei mir ist das lokal an Port 4010.

API-Anfragen an Prism stellen

Verwenden Sie die in der Startausgabe von Prism angezeigte URL als Basis-URL, um die Beispiel-API mit Ihrem bevorzugten HTTP-Client auszuprobieren. Im obigen Beispiel wurde die Number Insights API verwendet, sodass Sie eine Curl-Anfrage wie die folgende stellen können:

curl "http://localhost:4010/basic/json?api_key=abcd1234&api_secret=VerySecret1&number=44777000777"

Die Antwort von Prism enthält die gleichen Felder wie die Live-API und einige Beispielwerte, so dass sie beim Testen ein idealer Ersatz für die "echte" API ist.

Eine noch einfachere Möglichkeit, mit Prism zu arbeiten und API-Anfragen zu stellen, besteht darin, dieselbe OpenAPI-Spezifikation, die Sie Prism gegeben haben, in Postman zu importieren und die vorgefertigte Sammlung von Anfragen zu verwenden. Durch Ändern der {{baseUrl}} variabel, können Sie Postman und Prism schnell nutzen, um die Form jeder Vonage-API ohne Gebühren zu erkunden.

Verwendung von Prism mit Ihrer Applikation

Unsere SDKs bieten alle Unterstützung für das Ändern der Basis-URL, an die API-Anfragen gerichtet werden (ausführlich in der README jeder der Bibliotheken), damit Sie andere Endpunkte für Tests verwenden können.

Erweiterte Verwendung von Prism

Sobald Sie sich mit Prism vertraut gemacht haben, finden Sie hier einige Tipps, wie Sie Ihre Arbeit auf die nächste Stufe bringen können.

Anforderung einer spezifischen Antwort

Unsere APIs können in einigen Situationen Fehlerantworten zurückgeben, und es kann schwierig sein, diese Fehlersituationen auf der Live-Plattform nachzustellen. Die Verwendung von Prism bietet die Möglichkeit, Applikationen auf alle möglichen Antworten hin zu testen.

In einigen unserer API-Spezifikationen sind Fehlerantworten detailliert beschrieben, und Sie können den Namen der Antwort verwenden, um Prism zu bitten, sie zurückzugeben.

Bei der Verify-API finden Sie dies zum Beispiel in den Beispielantworten in der API-Spezifikation:

              examples:
                success:
                  summary: Request was started
                  value:
                    request_id: abcdef0123456789abcdef0123456789
                    status: "0"

                throttled:
                  summary: Request limit exceeded
                  value:
                    status: "1"
                    error_text: Throttled

                account-disabled:
                  summary: Account is barred
                  value:
                    status: "8"
                    error_text: The api_key you supplied is for an account that has been barred from submitting messages.

                rejected:
                  summary: Rejected
                  value:
                    status: "15"
                    error_text: The destination number is not in a supported network

Standardmäßig gibt Prism die erste Antwort zurück. Das ist ein gutes Beispiel dafür, was die API normalerweise zurückgibt.

Es wäre jedoch nicht ideal, wenn Sie überprüfen könnten, ob Ihr Code einige dieser anderen möglichen Antworten verarbeitet. Hier kann Prism eine große Hilfe sein! Durch Anhängen einer __example Parameter zu Ihrer Anfrage hinzufügen, können Sie auswählen, welche der Beispiele Prism zurückgeben soll. Eine Curl-Anfrage an die Verify-API, die jedoch die "gedrosselte" Antwort zurückgeben soll, würde beispielsweise wie folgt aussehen:

curl "http://localhost:4010/json?api_key=abcd1234&api_secret=VerySecret1&number=44777000777&brand=Test&__example=throttled"

Wenn Sie Prism auf diese Weise verwenden, können Sie das Verhalten Ihrer Anwendung mit allen Antworten überprüfen, die die API zurückgeben kann.

Bessere JSON-Verarbeitung mit JQ

Wenn Sie mit JSON auf der Kommandozeile arbeiten, wie in den hier gezeigten curl-Beispielen, versuchen Sie das Tool jq um Ihre Arbeit mit JSON zu verbessern. Es ist ein großartiger Formatierer und kann bestimmte Felder aus der Antwort extrahieren oder die Daten auch auf andere Weise verarbeiten.

In seiner einfachsten Form können Sie es verwenden, um eine schönere Ausgabe des curl-Beispiels zu erhalten, das wir beim ersten Testen von Prism verwendet haben:

curl "http://localhost:4010/basic/json?api_key=abcd1234&api_secret=VerySecret1&number=44777000777" | jq "."