-
-
Notifications
You must be signed in to change notification settings - Fork 303
docs: update generator-template.md for AsyncAPI v3 parser usage #1551
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 14 commits
fdef813
f62c7f7
6ba91cb
e2ff0a0
72403b1
6e84398
7bc3c93
5b18b6e
86931d5
742d915
820d777
ecaac8c
33cba12
cbeaac3
08b085b
656706b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -39,44 +39,51 @@ Before you begin, make sure you have the following set up: | |
|
||
## Background context | ||
|
||
There is a list of [community maintained templates](https://www.asyncapi.com/docs/tools/generator/template#generator-templates-list), but what if you do not find what you need? In that case, you'll create a user-defined template that generates custom output from the generator. | ||
Before you create the template, you'll need to have an [AsyncAPI document](https://www.asyncapi.com/docs/tools/generator/asyncapi-document) that defines the properties you want to use in your template to test against. In this tutorial, you'll use the following template saved in the **test/fixtures/asyncapi.yml** file in your template project directory. | ||
**This tutorial focuses on code generation using templates — not full AsyncAPI document modeling.** | ||
|
||
``` yml | ||
There is a list of [community maintained templates](https://www.asyncapi.com/docs/tools/generator/template#generator-templates-list), but what if you do not find what you need? In that case, you'll create a user-defined template that generates custom output from the generator. | ||
Before you create the template, you'll need an [AsyncAPI document](https://www.asyncapi.com/docs/tools/generator/asyncapi-document) that defines the properties used in your generator. | ||
In this tutorial, we use a simplified AsyncAPI document focused on extracting data for template generation. | ||
You'll use the following document saved as test/fixtures/asyncapi.yml. | ||
|
||
asyncapi: 2.6.0 | ||
|
||
```yaml | ||
asyncapi: "3.0.0" | ||
info: | ||
title: Temperature Service | ||
version: 1.0.0 | ||
description: This service is in charge of processing all the events related to temperature. | ||
description: Service that emits temperature changes from a bedroom sensor. | ||
|
||
servers: | ||
dev: | ||
url: test.mosquitto.org #in case you're using local mosquitto instance, change this value to localhost. | ||
protocol: mqtt | ||
|
||
channels: | ||
temperature/changed: | ||
description: Updates the bedroom temperature in the database when the temperatures drops or goes up. | ||
publish: | ||
operationId: temperatureChange | ||
message: | ||
description: Message that is being sent when the temperature in the bedroom changes. | ||
temperatureChanged: | ||
address: temperature/changed | ||
messages: | ||
temperatureChange: | ||
description: Message sent when the temperature in the bedroom changes. | ||
payload: | ||
type: object | ||
additionalProperties: false | ||
properties: | ||
temperatureId: | ||
type: string | ||
$ref: '#/components/schemas/Temperature' # refactored from inline payload for better reuse | ||
|
||
operations: | ||
sendTemperatureChanged: | ||
action: send | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. in AsyncAPI v2 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You're absolutely right — with AsyncAPI v3, the semantics around publish and subscribe have flipped compared to v2. I’ve updated the document to reflect this change correctly by using the top-level operations with action: send, aligning with how v3 represents a message sent from the application. Let me know if you'd prefer a more explicit explanation about this change added in the tutorial! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. just push the change, I think it is not visible yet There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yeah sure! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. as I wrote, it should be |
||
summary: Temperature changes are pushed to the broker | ||
channel: | ||
$ref: '#/channels/temperatureChanged' | ||
|
||
components: | ||
schemas: | ||
temperatureId: | ||
Temperature: | ||
type: object | ||
additionalProperties: false | ||
properties: | ||
temperatureId: | ||
type: string | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove empty space |
||
``` | ||
|
||
## Overview of steps | ||
|
@@ -100,7 +107,7 @@ python-mqtt-client-template | |
└── package.json | ||
``` | ||
|
||
Lets break it down: | ||
Let's break it down: | ||
|
||
### package.json file | ||
|
||
|
@@ -649,4 +656,4 @@ Great job completing this tutorial! You have learnt how to use an AsyncAPI file | |
|
||
If you want to tinker with a completed template and see what it would look like in production, check out the [Paho-MQTT template](https://github.com/derberg/python-mqtt-client-template/tree/v1.0.0). You can also check out the accompanying [article about creating MQTT client code](https://www.brainfart.dev/blog/asyncapi-codegen-python). | ||
|
||
You can also check out the [MQTT beginners guide](https://medium.com/python-point/mqtt-basics-with-python-examples-7c758e605d4) tutorial to learn more about asynchronous messaging using MQTT. | ||
You can also check out the [MQTT beginners guide](https://medium.com/python-point/mqtt-basics-with-python-examples-7c758e605d4) tutorial to learn more about asynchronous messaging using MQTT. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why was this changed?
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes to first and foremost clarify that it doesn't fully focus on the AsyncAPI doc modeling!
just to be clear enough!
also to make the things in format, looking short to read and more understandable..
that's why i why explained the things as per lines and not as para's
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please revert to original