
io.zenwave360.sdk.plugins.AsyncAPIToJDLGenerator.JDLToAsyncAPIv3.yml.hbs Maven / Gradle / Ivy
asyncapi: 3.0.0
info:
title: Zenwave 360 Generated API
version: 0.0.1
defaultContentType: application/json
tags:
- name: "Default"
{{~#each zdlModel.serviceNames as |serviceName|}}
- name: "{{asTagName serviceName}}"
{{~/each}}
channels:
{{~#each zdlModel.entities as |entity|}}
{{~#unless (skipOperations entity)}}
{{~#if includeCommands}}
{{entity.kebabCase}}.requests:
address: {{entity.kebabCase}}.requests
summary: {{entity.className}} Async Requests
messages:
- $ref: "#/components/messages/{{entity.className}}RequestMessage"
{{~/if}}
{{~#if includeEvents}}
{{entity.kebabCase}}.events:
summary: {{entity.className}} Domain Events
messages:
- $ref: "#/components/messages/{{entity.className}}EventMessage"
{{~/if}}
{{/unless}}
{{~/each}}
operations:
{{~#each zdlModel.operations as |operation|}}
{{@key}}:
action: {{operation.action}}
channel:
$ref: '#/channels/{{operation.channel}}'
{{~/each}}
{{~#each zdlModel.entities as |entity|}}
{{~#unless (skipOperations entity)}}
{{~#if includeCommands}}
do{{entity.className}}Request:
action: receive
channel:
$ref: "#/channels/{{entity.kebabCase}}.requests"
tags:
- name: {{asTagName entity.options.service}}
{{~/if}}
{{~#if includeEvents}}
on{{entity.className}}Event:
action: send
channel:
$ref: "#/channels/{{entity.kebabCase}}.requests"
tags:
- name: {{asTagName entity.options.service}}
{{~/if}}
{{~/unless}}
{{~/each}}
components:
messages:
{{~#each zdlModel.entities as |entity|}}
{{~#unless (skipOperations entity)}}
{{~#if includeCommands}}
{{entity.className}}RequestMessage:
messageId: {{entity.className}}RequestMessage
name: {{entity.className}}RequestMessage
title: Async Command/Request for a {{entity.className}}
summary: Async Command/Request for a {{entity.className}}
schemaFormat: {{{schemaFormatString}}}
traits:
- $ref: '#/components/messageTraits/CommonHeaders'
payload:
$ref: "{{payloadRef entity "Request" }}"
{{~/if}}
{{~#if includeEvents}}
{{entity.className}}EventMessage:
name: {{entity.className}}EventMessage
messageId: {{entity.className}}EventMessage
title: Message for a {{entity.className}} Event
summary: Message for a {{entity.className}} Event
schemaFormat: {{{schemaFormatString}}}
traits:
- $ref: '#/components/messageTraits/CommonHeaders'
payload:
$ref: "{{payloadRef entity "Event"}}"
{{~/if}}
{{/unless}}
{{~/each}}
messageTraits:
CommonHeaders:
headers:
type: object
properties:
kafka_messageKey:
type: string
description: This header value will be populated automatically at runtime
x-runtime-expression: $message.payload#/id
tracingId:
type: string
description: This header value will be populated automatically at runtime
x-runtime-expression: $tracingIdSupplier
{{{schemasAsString}}}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy