This repo demonstrates a bug where OpenApiFunctionExecutionParameters callbacks (HttpResponseContentReader and RestApiOperationResponseFactory) are not invoked when loading plugins when importing an OpenAPI ApiManifest (via ImportPluginFromApiManifestAsync).
When using ApiManifestPluginParameters.FunctionExecutionParameters to pass custom callbacks, they are never called during function invocation.
Test: WeatherGovAsApiManifest - Fails ⛔
var functionExecutionParameters = new Dictionary<string, OpenApiFunctionExecutionParameters>
{
["api.weather.gov"] = new()
{
HttpResponseContentReader = async (context, ct) => { /* never called */ },
RestApiOperationResponseFactory = (context, ct) => { /* never called */ }
}
};
var pluginParameters = new ApiManifestPluginParameters
{
FunctionExecutionParameters = functionExecutionParameters
};
await kernel.ImportPluginFromApiManifestAsync("MyWeatherPlugin", "manifest.json", pluginParameters);When using ImportPluginFromOpenApiAsync directly with OpenApiFunctionExecutionParameters, the callbacks are invoked as expected.
Test: WeatherGovAsOpenApi - Passes ✅
var functionExecutionParameters = new OpenApiFunctionExecutionParameters
{
HttpResponseContentReader = async (context, ct) => { /* called */ },
RestApiOperationResponseFactory = (context, ct) => { /* called */ }
};
await kernel.ImportPluginFromOpenApiAsync("MyWeatherPlugin", "openapi.json", functionExecutionParameters);dotnet testWeatherGovAsOpenApi- Passes ✅WeatherGovAsApiManifest- Fails ⛔