AsyncAPI tooling update - Week 46

Jonas Lagoni Avatar

Jonas Lagoni

·3 min read

This post bundles updates from the following official tools, but not limited to: bundler, chatbot, studio, diff, glee, create-glee-app, cli, optimizer, modelina, generator, generator-react-sdk, java-template, java-spring-cloud-stream-template, java-spring-template, dotnet-nats-template and ts-nats-template.

You can find the last tooling update here.

In case you want to read what other changes have been happening, you can get the overviews here:

Highlights

These are some of the highlights of changes that have happened in the tools or what's to come! It of course does not cover all the changes but only certain ones.

IntelliJ AsyncAPI plugin

In case you use IntelliJ as your IDEA to edit AsyncAPI documents, you can use the following plugin to make your experience better. It helps you edit the AsyncAPI document with reference auto-completion, validating your document on the fly and showing you the documentation right next to your editor!

The plugin can be found in jasyncapi-idea-plugin repository.

EDAVisualiser

Finally donated to the AsyncAPI organization, is the possibility to visualize AsyncAPI documents in the same or more advanced ways as the AsyncAPI studio. It focuses on visualizing different views, each having a specific reason for being there.

Do you want to figure out which applications interact with one specific application? Use the ApplicationFocusView. Do you want to view the behavior of your application? Use the ApplicationView. Do you want to get an overall perspective of how all your applications interact with each other? Use the SystemView.

The hope is that going forward this library will provide different ways, and push the current developer experience, for how developers are onboarded to a complex system.

It of course works with a range of frameworks such as angular, Next.JS, react, and Vue.

You can play around with the small playground here: https://asyncapi.github.io/EDAVisualiser

Kafka and AMQP 1.0 support for Glee

Currently, Glee supports two protocols, WebSocket and MQTT, but it is currently being pushed with two new protocols, Kafka and AMQP 1.0. This is being done by Ruchi and Atharva respectively as part of the AsyncAPI mentorship program.

Code generation

We have a bunch of changes to the code generation tools that I am gonna list here.

Node.js code generator now throws validation exception when receiving incorrectly formatted payload. It now also supports mqtts. It now also supports oneOf messages.

TypeScript Nats code generator now supports JetStream fetch, pull subscribe, push subscribe, and pull.

.NET Nats code generator now supports two types of serialization libraries, either Newtonsoft or the native System.text.Json.

Java code generator now supports different TLS options for ibmmq-secure.

Modelina, Python now supports two styles of imports, either using implicit or explicit, Python also now support basic Pydantic support.

.NET now has a Newtonsoft preset for generating models with, well, methods for converting models to and from JSON using Newtonsoft.

To that end

In the end, thank you to everyone who contributes to AsyncAPI in any way you can 💜 If you also want to help out but don't know where to begin, then join the #11_how-to-contribute channel on Slack so we can help you any way we can 💪

If you have worked on something or are working on something that you would like to be included in these updates, feel free to reach out!

Photo by Markus Winkler on Unsplash