Skip to content

Extensions

Alex Wichmann edited this page Jun 11, 2025 · 2 revisions
document.Extensions=newDictionary<string,IAsyncApiExtension>{["boolean"]=newAsyncApiAny(false),["string"]=newAsyncApiAny("test"),["decimal"]=newAsyncApiAny(2.2),["int"]=newAsyncApiAny(1),["array"]=newAsyncApiAny(newList<string>()),["object"]=newAsyncApiAny(new{test=123}),};

Extension parsers

Extension parsers enable you to transform extensions, in any way you want. See example below.

asyncapi: 2.3.0info:
title: testversion: 1.0.0contact: name: API Supporturl: https://www.example.com/supportemail: support@example.comchannels:
workspace:
x-someValue: onetwothreefour
Func<AsyncApiAny,IAsyncApiExtension>valueExtensionParser=(any)=>{if(any.TryGetValue<string>(outvarvalue)){if(value=="onetwothreefour"){returnnewAsyncApiAny(1234);}}returnnewAsyncApiAny("No value provided");};varsettings=newAsyncApiReaderSettings{ExtensionParsers=newDictionary<string,Func<AsyncApiAny,IAsyncApiExtension>>{{"x-someValue",valueExtensionParser},},};varreader=newAsyncApiStringReader(settings);vardoc=reader.Read(yaml,outvardiagnostic);Assert.AreEqual(AsyncApiAny.FromExtensionOrDefault<int>(doc.Channels["workspace"].Extensions["x-someValue"]),1234);// True

Clone this wiki locally