Open stammaja opened 3 months ago
Welcome to Springwolf. Thanks a lot for reporting your first issue. Please check out our contributors guide and feel free to join us on discord.
Hi @stammaja,
that is a great feature enhancement to show in springwolf-ui the server
for each found channel (kafka topic in your case).
Using your example, you probably want to configure it, so that the server
name is kafka-external
:
springwolf.docket.servers.kafka-external.protocol=kafka
springwolf.docket.servers.kafka-external.host=...
Also, your listener needs to know about the server
name. You can use the @AsyncOperation
annotation for that:
@KafkaHandler
@AsyncListener(
operation =
@AsyncOperation(
channelName = TOPIC,
servers = {"kafka-external"}))
public void handleNotification(NotificationDto notification) {
// ...
}
(We plan to remove the type
field as it is constant for the protocol name (kafka
) and should not be modified)
Now, the server name shows up correctly in the asyncapi.json
file.
To better indicate in the ui the difference between protocol and server name, https://github.com/springwolf/springwolf-core/pull/738 updates the examples
Help is still welcome to show the server name as part of the channel item
On this is being worked in https://github.com/springwolf/springwolf-core/pull/832
In a setup similar to your example ExampleClassLevelKafkaListener, I tried to use KafkaAsyncOperationBinding "type" in order to separate listeners per server they listen to. But I'm getting "kafka" instead.
springwolf-kafka
version1.1.0
.Expected: In the UI listener will be shown with tag "kafka-external" Actual: It is shown still as "kafka"
EDIT by maintainer:
Requested enhancement:
server
name inspringwolf-ui
. A starting point can bechannels.component.html
. This can be a simple tag next to theprotocol badge
.According to the spec, a
server
can be present on the channel kafka-example. If not present, the channel is available on all servers defined in the servers block.You, or anybody who is interested, is welcome to contribute.