Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: asyncapi/website
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1f48d8d1ad6deb28e2933169d648d9e0ca2ea14b
Choose a base ref
..
head repository: asyncapi/website
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 223fa8a8c88e610a34b558c4604f19a99cf3ff40
Choose a head ref
Showing with 59 additions and 0 deletions.
  1. +59 −0 pages/blog/release-notes-2.5.0.md
59 changes: 59 additions & 0 deletions pages/blog/release-notes-2.5.0.md
Original file line number Diff line number Diff line change
@@ -19,6 +19,65 @@ The new version of the AsyncAPI specification - 2.5.0 - is now available.

> This is a minor release, and it doesn't bring any breaking changes. You can switch to it by modifying the following value in your AsyncAPI file `asyncapi: '2.4.0'` into `asyncapi: '2.5.0'`
## Server Variables can be now referenced from inside the Server Object

Previous AsyncAPI 2.4.0 release came with support of [defining Server Variable Objects as reusable components](https://www.asyncapi.com/blog/release-notes-2.4.0#server-variables-can-be-now-referenced-from-components).
Unfortunately AsyncAPI 2.4.0 doesn't allow to reference reusable `Server Variable Objects` from within the `Server Object`.
So we ended up in a situation when reusable `Server Variable Objects` can be defined, but they actually cannot be reused.
AsyncAPI 2.5.0 remedies this deficiency by allowing to use `Reference Object` whenever `Server Variable Object` can be used inside `Server.variables` field.

Following example is now fully compliant with the specification:

```yaml
asyncapi: 2.4.0
servers:
development:
$ref: '#/components/servers/myserver'
production:
$ref: '#/components/servers/myserver'
components:
servers:
myserver:
url: "{stage}.my-server.com:{port}"
protocol: ws
variables:
stage:
$ref: "#/components/serverVariables/stage"
port:
$ref: "#/components/serverVariables/port"
serverVariables:
stage:
default: dev
port:
enum: [5000, 6000]
default: 5000
```
This new feature was contributed by [Vladimír Gorej](https://github.com/char0n). For more detail, see [Daniel's `/spec #776` pull request](https://github.com/asyncapi/spec/pull/776) and the [GitHub issue where Vladimír's change to `serverVariables ` was discussed](https://github.com/asyncapi/spec/issues/775).

## Decorating Server Object with tags

placeholder for description

## Clarifications

Here are notable clarifications that got into AsyncAPI 2.5.0 release. Here is the list of notable clarifications that may have
impact on the tooling authors:

**ChannelItem.$ref resolution rules**

All references of `MUST be in the format of a URL` sentence have been substituted with `This MUST be in the form of an absolute URL`.
The meaning of `absolute URL` is now defined by [RFC3986, section 4.3](https://datatracker.ietf.org/doc/html/rfc3986#section-4.3).

This clarification was contributed by [Vladimír Gorej](https://github.com/char0n). For more detail, see [Daniel's `/spec #782` pull request](https://github.com/asyncapi/spec/pull/782) and the [GitHub issue where Vladimír's clarification discussed](This clarification was contributed by [Vladimír Gorej](https://github.com/char0n). For more detail, see [Daniel's `/spec #782` pull request](https://github.com/asyncapi/spec/pull/782) and the [GitHub issue where Vladimír's clarification discussed](https://github.com/asyncapi/spec/issues/775).

**Clarification around URL resolution rules**

The resolution rules around `ChannelItem.$ref` field were not clearly defined. AsyncAPI 2.5.0 comes with explicit clarification
that the resolution is done as defined by the [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03).

This clarification was contributed by [Vladimír Gorej](https://github.com/char0n). For more detail, see [Daniel's `/spec #779` pull request](https://github.com/asyncapi/spec/pull/779) and the [GitHub issue where Vladimír's clarification discussed](This clarification was contributed by [Vladimír Gorej](https://github.com/char0n). For more detail, see [Daniel's `/spec #782` pull request](https://github.com/asyncapi/spec/pull/782) and the [GitHub issue where Vladimír's clarification discussed](https://github.com/asyncapi/spec/issues/612).

## Tooling support

The following official AsyncAPI tools are already updated to support 2.5.0 version of the specification: