File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed 
test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -409,6 +409,10 @@ private async Task<OpenApiResponse> GetResponseAsync(
409409            var  targetType  =  parameter . Type  ==  typeof ( string )  &&  parameter . ModelMetadata . ModelType  !=  parameter . Type 
410410                ?  parameter . ModelMetadata . ModelType 
411411                :  parameter . Type ; 
412+             // If the type is null, then we're dealing with an inert 
413+             // route parameter that does not define a specific parameter type in the 
414+             // route handler or in the response. In this case, we default to a string schema. 
415+             targetType  ??=  typeof ( string ) ; 
412416            var  openApiParameter  =  new  OpenApiParameter 
413417            { 
414418                Name  =  parameter . Name , 
Original file line number Diff line number Diff line change @@ -592,4 +592,22 @@ internal enum ItemStatus
592592        Approved  =  1 , 
593593        Rejected  =  2 , 
594594    } 
595+ 
596+     [ Fact ] 
597+     public  async  Task  SupportsMvcActionWithAmbientRouteParameter ( ) 
598+     { 
599+         // Arrange 
600+         var  action  =  CreateActionDescriptor ( nameof ( AmbientRouteParameter ) ) ; 
601+ 
602+         // Assert 
603+         await  VerifyOpenApiDocument ( action ,  document => 
604+         { 
605+             var  operation  =  document . Paths [ "/api/with-ambient-route-param/{versionId}" ] . Operations [ OperationType . Get ] ; 
606+             var  parameter  =  Assert . Single ( operation . Parameters ) ; 
607+             Assert . Equal ( "string" ,  parameter . Schema . Type ) ; 
608+         } ) ; 
609+     } 
610+ 
611+     [ Route ( "/api/with-ambient-route-param/{versionId}" ) ] 
612+     private  void  AmbientRouteParameter ( )  {  } 
595613} 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments