Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

go-template

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package version was removed
This package version has been unpublished, mostly likely due to security reasons

go-template

Template for generating Go module based on async api

unpublished
Source
npmnpm
Version
0.1.9
Version published
Weekly downloads
10
42.86%
Maintainers
1
Weekly downloads
 
Created
Source
  • Overview
  • Technical requirements
  • Supported protocols
  • How to use the template
  • Template configuration

Overview

This template generates a Go module that uses watermill as the messaging middleware

Technical requirements

Supported protocols

Currently this template supports AMQP subscribers

How to use the template

This template must be used with the AsyncAPI Generator. You can find all available options here.

CLI

This template has been tested to generate an AMQP subscriber for this asyncapi.yaml file

Run the following command to generate a Go module

npm install -g @asyncapi/generator
# clone this repository and navigate to this repository
ag test/asyncapi.yaml @asyncapi/go-watermill-template -o /path/to/generated-code -p moduleName=your-go-module-name

Following are the options that can be passed to the generator

  • moduleName: name of the go module to be generated

How to use the generated code

The above code currently generates a Go module that has a AMQP subscriber.

Pre-requisites

To run the generated code the following needs to be installed

  • go 1.16 +
  • rabbitmq-server OR docker
Running the code
  • Navigate to the path where the code was generated
  • Run the following commands to download the dependencies
go mod download
go mod tidy
  • Currently the code does not utilize the server bindings to generate the server URI. It is currently hardcoded to point to a local instance of rabbitmq. It is hardcoded as "amqp://guest:guest@localhost:5672/" at <generated-code>/config/server.go. Change it as per your rabbitmq instance requirements
  • Finally to execute the code run
go run main.go
  • Running local instance of rabbitmq, navigate to it using http://localhost:15672/ with username and password guest/ guest (These are default rabbitmq credentials). FYI one can start an instance of rabbitmq using docker as follow
    docker run -d -p 15672:15672 -p 5672:5672 rabbitmq:3-management
    
  • Create a queue as per the AsyncAPI spec. This can be done either of the following ways
    • Using the UI: Refer to this article that walks through the process of how this can be done in the UI / RabbitMQ Admin
    • cURL request. Default rabbitmq user is guest and password is guest
     curl --user <rabbit-user>:<rabbit-password> -X PUT \
       http://localhost:15672/api/queues/%2f/<queue-name> \
       -H 'cache-control: no-cache' \
       -H 'content-type: application/json' \
       -d '{
     "auto_delete":false,
     "durable":true
     }'
    
  • Publish a message to the queue as per the AsyncAPI spec. This can be done either of the following ways
    • Using the UI: Refer to this article that walks through the process of how this can be done in the UI / RabbitMQ Admin
    • cURL request. Default rabbitmq user is guest and password is guest
     curl --user <rabbit-user>:<rabbit-password> -X POST \
       http://localhost:15672/api/exchanges/%2f/amq.default/publish \
       -H 'cache-control: no-cache' \
       -H 'content-type: application/json' \
       -d ' {
     "properties":{},
     "routing_key":"light/measured",
     "payload":"{\"id\":1,\"lumens\":2,\"sentAt\":\"2021-09-21\"}",
     "payload_encoding":"string"
     }'
    
  • Check the output at the terminal where go run main.go was running and the published message should be printed

Template configuration

You can configure this template by passing different parameters in the Generator CLI: -p PARAM1_NAME=PARAM1_VALUE -p PARAM2_NAME=PARAM2_VALUE

NameDescriptionRequiredExample
moduleNameName for the generated Go modulefalsemy-app

Keywords

asyncapi

FAQs

Package last updated on 24 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts