Azure / azure-functions-openapi-extension

This extension provides an Azure Functions app with Open API capability for better discoverability to consuming parties

Home Page:https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.OpenApi/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Visitors - no shortcut for recursive references causing stack overflow

Wozbo opened this issue · comments

Describe the issue
When visitors are traversing a model to generate schema, it looks like any form of recursion causes a stack overflow. This occurs when the recursion is across models.

A => A - handled.

A => B => A - not handled
A => B => {...} => A - not handled.

To Reproduce
Steps to reproduce the behavior:
Create a standard API with open api attributes.

Create a model of type A that has a property of Type B.
Create a model of type B that has a property of Type C.
Create a model of type C that has a property of Type A.

Adding one extra level of indirection, as that would handle both the broken cases brought up above.

Expected behavior
Recursion for a visitor should short circuit and substitute a reference.

As far as I can tell, this issue is split across OpenApiSchemaAcceptor, and possibly the TypeVisitor.