Skip to content

cdschneider/semantic-kernel-apimanifest-bug

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repo demonstrates a bug where OpenApiFunctionExecutionParameters callbacks (HttpResponseContentReader and RestApiOperationResponseFactory) are not invoked when loading plugins when importing an OpenAPI ApiManifest (via ImportPluginFromApiManifestAsync).

The Bug

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);

Expected Behavior

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);

Prerequisites

Running the Tests

dotnet test
  • WeatherGovAsOpenApi - Passes ✅
  • WeatherGovAsApiManifest - Fails ⛔

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages