AsyncAPI-Inspektor

Fügen Sie eine AsyncAPI-Definition ein, um ihre Ereignisstruktur zu untersuchen. Der Inspektor fasst unterstützte Felder ohne Brokerverbindung zusammen.

Läuft lokal in deinem Browser
Dieses Werkzeug verarbeitet alle Daten lokal in deinem Browser.
AsyncAPI-DokumentFügen Sie AsyncAPI-JSON oder YAML ein. Der Browser liest Kanäle und Operationen, verbindet sich aber nie mit einem Broker.
Kanäle und Operationen

Eine AsyncAPI-Definition untersuchen

Fügen Sie eine AsyncAPI-Definition als YAML oder JSON ein, und die Seite listet die Kanäle, die darauf deklarierten Operationen, die Nachrichten je Kanal, die Server und die Dokumentversion. Das Auslesen passiert im Browser: Die Definition wird nicht hochgeladen, und es verlässt keine Anfrage die Seite.

Das ist eine Lesehilfe für eine Spezifikationsdatei, kein Broker-Client und kein Validator. Angezeigt wird, was im eingefügten Text tatsächlich steht — auch der Fall, dass eine Nachrichtenreferenz auf eine Definition zeigt, die im Dokument fehlt.

  1. Fügen Sie die Definition in das Feld ein, oder laden Sie mit Beispiel laden ein kleines AsyncAPI-3.0-Dokument.
  2. Drücken Sie Lokal analysieren. Gelesen werden AsyncAPI 2.x und 3.0, als YAML oder JSON.
  3. Lesen Sie den Bericht rechts: Version, Titel, Server und je eine Zeile pro Kanal mit Operationen und Nachrichten.
  4. Mit Kopieren übernehmen Sie den Bericht, mit Leeren verschwinden Eingabe und Bericht.

Was der Bericht zeigt und was er auslässt

Wie beide Spezifikationsversionen gelesen werden

In AsyncAPI 3.0 liegen die Nachrichten eines Kanals unter channel.messages, und jede Operation im operations-Abschnitt benennt ihren Kanal, meist über eine $ref. In 2.x sitzen publish und subscribe direkt am Kanal, und jeder von beiden trägt eine Nachricht. Der Inspektor liest beide Formen: Eine 3.0-Zeile bekommt ihre Nachrichten aus der messages-Map, eine 2.x-Zeile aus publish.message oder subscribe.message.

Kanalreferenzen werden mit JSON-Pointer-Escaping über den Namen aufgelöst, sodass eine Referenz wie #/channels/user~1signed-up auf den Kanal mit dem Schlüssel user/signed-up passt. Ist eine Nachricht eine Referenz statt eines eingebetteten Objekts, erscheint der Name am Ende der Referenz in der Spalte statt einer leeren Zelle.

Was der Bericht enthält

Der Bericht ist JSON und damit lesbar oder in einem Review vergleichbar. Er enthält die deklarierte asyncapi-Version, Titel und Version aus info, die Servernamen und je Kanal die gefundenen Operationen neben den Nachrichtennamen. Eine Operation kommt in 2.x aus dem Kanal selbst, in 3.0 wird sie über die Kanalreferenz zugeordnet; ein Kanal ohne jede Operation wird als declared gekennzeichnet, damit der Unterschied sichtbar bleibt.

Unter dem Bericht stehen vier Zähler: Spezifikationsversion, Kanäle, Operationen und Server. Darunter listet die Seite Beobachtungen auf — eine Definition ohne info.title oder ohne Kanal —, damit ein leeres oder halb gefülltes Dokument auffällt und nicht vollständig wirkt.

Was das Werkzeug nicht tut

Der Inspektor baut keine Verbindung auf, abonniert kein Thema und kontaktiert die im Dokument genannten Server nicht. Das Wort lokal im Panel ist wörtlich gemeint: Alles ist Textauswertung mit dem bereits geladenen JavaScript, weshalb das Werkzeug auch ohne Netzwerk funktioniert.

Ein AsyncAPI-Linter ist es ebenfalls nicht. Es prüft nicht, ob Bindings gültig sind, referenzierte Schemas existieren oder das Dokument jede Regel der Spezifikation einhält. Eine Definition mit einem Fehler, nach dem nicht gesucht wird, gilt hier als erfolgreich gelesen. Für die Regel-für-Regel-Prüfung nutzen Sie die offiziellen AsyncAPI-Werkzeuge und sehen diese Seite als schnellen Blick auf die Struktur.

Grenzen, die man kennen sollte

Der Parser akzeptiert gewöhnliches YAML und JSON. Doppelte Schlüssel, Anker und eigene Tags jenseits der üblichen sind nicht Teil des schlanken YAML-Lesers; ein Dokument, das darauf baut, wird hier möglicherweise anders gelesen als von einer vollständigen YAML-Bibliothek. Eine nicht geschlossene Klammer oder eine kaputte Einrückung wird mit Zeilennummer gemeldet, nicht geraten.

Die Größe wird im Browser verarbeitet, ein sehr großes Dokument kostet also Speicher und Zeit auf Ihrem Rechner statt auf einem Server. Ein Dokument mit mehreren hundert Kanälen ist in etwa zwei Sekunden gelesen, und die Seite bleibt bedienbar, weil die Arbeit ein einzelner Durchlauf über den geparsten Text ist.

Zuletzt verwendet: