Channel address should be kebab-case (lowercase with hyphens).
| AsyncAPI | Compatibility |
|---|---|
| 2.6 | ✅ |
| 3.0 | ✅ |
Using consistent casing for the channel address provides a better developer experience and a more predictable experience overall.
| Option | Type | Description |
|---|---|---|
| severity | string | Possible values: off, warn, error. Default off. |
An example configuration:
rules:
channels-kebab-case: errorGiven the following configuration:
rules:
channels-kebab-case: errorExample of an incorrect channel:
channels:
ticketSales:
address: transactions/ticketSales # channel address value checked by rule
messages:
ticketSaleTransaction:
$ref: '#/components/messages/ticketSaleTransaction'Example of a correct channel:
channels:
ticketSales:
address: transactions/ticket-sales # channel address value checked by rule
messages:
ticketSaleTransaction:
$ref: '#/components/messages/ticketSaleTransaction'The syntax for how the channels are described changed with the AsyncAPI 3.0 release. This rule also works with AsyncAPI 2.6 and checks the channel address used as the key of the channels object. For example, the rule would catch this example where transactions/ticketSales is used as a channel name:
channels:
transactions/ticketSales: # channel address value checked by rule
subscribe:
message:
$ref: '#/components/messages/ticketSaleTransaction'Change the channel name to transactions/ticket-sales to comply with this rule.