{"id":4296,"date":"2021-03-21T16:06:14","date_gmt":"2021-03-21T16:06:14","guid":{"rendered":"https:\/\/dalelane.co.uk\/blog\/?p=4296"},"modified":"2021-03-30T08:41:11","modified_gmt":"2021-03-30T08:41:11","slug":"asyncapi-plugin-for-node-red","status":"publish","type":"post","link":"https:\/\/dalelane.co.uk\/blog\/?p=4296","title":{"rendered":"AsyncAPI plugin for Node-RED"},"content":{"rendered":"<p><img decoding=\"async\" src=\"\/\/dalelane.co.uk\/blog\/wp-content\/uploads\/2021\/03\/nodered-asyncapi.png\" alt=\"screenshot\" style=\"border: thin black solid\"\/><\/p>\n<p><strong>I&#8217;ve been tinkering with a new <a href=\"https:\/\/github.com\/dalelane\/node-red-contrib-plugin-asyncapi\">AsyncAPI plugin for Node-RED<\/a> as a side project over the last couple of weeks. Time to share what I&#8217;ve got working so far.<\/strong><\/p>\n<p><a href=\"https:\/\/nodered.org\">Node-RED<\/a> is an open-source visual programming tool. You assemble flows on a canvas from a palette of nodes, that you customize and then wire together. That makes it ideal for quick prototyping.<\/p>\n<p>There are nodes for different types of servers and devices, which makes it great for quick integration projects. This includes nodes for sending and receiving messages using protocols like Kafka and MQTT.<\/p>\n<p>Normally, this means having to choosing a node from the palette, dragging it onto the canvas, clicking into it, and customizing it: filling in the connection details for the broker and topic you want to use.<\/p>\n<p>The idea of this plugin is to do all of that for you, if you have <a href=\"https:\/\/dalelane.co.uk\/blog\/?p=4219\">an AsyncAPI specification for your topics<\/a>.<\/p>\n<p>The plugin can generate and customize the nodes for you, based on your spec &#8211; making rapid prototyping based on the spec even quicker.<\/p>\n<p><!--more--><iframe loading=\"lazy\" width=\"450\" height=\"253\" src=\"https:\/\/www.youtube.com\/embed\/3B4O10V2PA0\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe><br \/>\n<small><a href=\"https:\/\/youtu.be\/3B4O10V2PA0\">demo video at youtu.be\/3B4O10V2PA0<\/a><\/small><\/p>\n<p>There is still <a href=\"https:\/\/github.com\/dalelane\/node-red-contrib-plugin-asyncapi\/issues\">loads of work to do<\/a> on it, so it&#8217;s by no means finished. But Node-RED support for plugins is still in beta, so I have a little time to work on the worst rough edges!<\/p>\n<p>Finally, huge thanks to <a href=\"https:\/\/knolleary.net\">Nick<\/a> for helping me get started with this and putting up with my endless stupid questions. \ud83d\ude42<\/p>\n<p><em>If you&#8217;d like to give it a try, you can find it on <a href=\"https:\/\/github.com\/dalelane\/node-red-contrib-plugin-asyncapi\">GitHub<\/a>. Feedback is very welcome. Fixes and improvements are even more welcome!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been tinkering with a new AsyncAPI plugin for Node-RED as a side project over the last couple of weeks. Time to share what I&#8217;ve got working so far. Node-RED is an open-source visual programming tool. You assemble flows on a canvas from a palette of nodes, that you customize and then wire together. That [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4297,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[602,590],"class_list":["post-4296","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-asyncapi","tag-nodered"],"_links":{"self":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4296"}],"version-history":[{"count":0,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4296\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/media\/4297"}],"wp:attachment":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}