All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
v0.8.0 - 2021-09-11
- Filters are now registered as types (e.g.
options.AddOperationFilter<T>
) and resolved from anIServiceProvider
v0.7.1 - 2021-08-04
- Include XML documentation file in build (HOW HAD I NOT NOTICED THIS BEFORE?!)
v0.7.0 - 2021-08-04
- AsyncAPI spec version bumped to 2.1.0
Message.Examples
type changed fromIList<IDictionary<string, object>>
toIList<MessageExample>
to allow specifying the newname
andsummary
fields.- New security schemes added.
v0.6.0 - 2021-08-03
- Added ability to generate multiple AsyncAPI documents using the
ConfigureNamedAsyncApi
extension
v0.5.0 - 2021-07-28
- Added ability to use bindings by specifying a BindingsRef in the attribute e.g.
[Channel("light.measured", BindingsRef = "my-amqp-binding")]
- Added MQTT bindings
- Swapped custom JSON schema generation for NJsonSchema
- Removed direct dependencies on System.Text.Json
v0.4.0 - 2021-07-27
- UI no longer proxies to playground.asyncapi.io, but instead uses the asyncapi standalone react component as an embedded resource.
- Removed settings related to the proxied UI
- AsyncApi.Middleware.UiRoute
- AsyncApi.Middleware.PlaygroundBaseAddress
- Bumped project dependencies
System.Text.Json 5.0.0 -> 5.0.2
Namotion.Reflection 1.0.14 -> 1.0.23
Microsoft.NET.Test.Sdk 16.8.3 -> 16.10.0
v0.3.1 - 2021-07-19
- DateTimeOffset causes recursive schema - now treated same as DateTime
- DictionaryKeyToStringConverter to support lists #94
v0.3.0 - 2021-07-19
- Replaced dependency on Newtonsoft.Json with System.Text.Json
- Previously we were inspecting types for the attributes provided by Newtonsoft.Json such as
[JsonProperty]
. If you were relying on these attributes, you will now need to setoptions.SchemaIdSelector
and/oroptions.PropertyNameSelector
to a function which inspects those attributes. e.g.
services.AddAsyncApiSchemaGeneration(options => { options.PropertyNameSelector = prop => prop.GetCustomAttribute<JsonPropertyAttribute>()?.PropertyName ?? prop.Name; });
- Previously we were inspecting types for the attributes provided by Newtonsoft.Json such as
- Multi-targeting
netcoreapp3.1
,net5.0
andnetstandard2.0
- Async API UI
- Endpoint-aware middleware on
netcoreapp3.1
+app.UseEndpoints(endpoints => { endpoints.MapAsyncApiDocuments(); endpoints.MapAsyncApiUi(); })
- Bindings for HTTP, Kafka & RabbitMQ
- Support for Subscribe and Publish operations of the same Channel in different classes
- Code-first discriminator support with
[Discriminator]
and[DiscriminatorSubType]
attributes - Support for
[Required]
attribute - Support for Channel Parameters
- Support for
oneOf
message types (use multiple[Message(Type)]
attributes)
AsyncApiOptions.PropertyNameSelector
was not being used
v0.2.0 - 2020-08-04
- Support System.Guid as a JSON Schema string with "uuid" format.
- Default Schema ID factory handles generics in a human-friendly format
List<Foo>
becomes"listOfFoo"
Dictionary<string, Foo>
becomes"dictionaryOfStringAndFoo"
- etc
v0.1.0 - 2020-07-02
- First stable release!