title: Swashbuckle request parameters not working when using custom model binder
body: <p>I have an ASP.NET Core 3.1 API endpoint configured as follows:</p>
  <pre><code>[HttpGet(&quot;api/controller/action/{id}&quot;)]
  public async Task&lt;IActionResult&gt; GetSingle([FromRoute] GetSingleRequest request) {...}
  </code></pre>
  <p>The DTO has a single Guid property:</p>
  <pre><code>public class GetSingleRequest
  {
    public Guid Id { get; set; }
  }
  </code></pre>
  <p>I have configured a custom model binder to bind Guid properties to string values as I'm using a short guid implementation. This is all working fine when testing using Postman.</p>
  <p>However, when using Swagger, instead of passing the route parameter as entered, it passes the parameter template, E.g.</p>
  <pre><code>GET /api/controller/action/{id}     // Literally constructs the URI with {id}
  GET /api/controller/action/abcd1234 // Not the value as entered
  </code></pre>
  <p>I have tried using <code>MapType</code> and <code>ISchemaFilter</code> as follows:</p>
  <pre><code>// startup.cs
  c.MapType&lt;Guid&gt;(() =&gt; new OpenApiSchema {Type = &quot;string&quot;, Format = null});
  </code></pre>
  <pre><code>// startup.cs
  c.SchemaFilter&lt;GuidSchemaFilter&gt;();
  
  // GuidSchemaFilter.cs
  internal class GuidSchemaFilter : ISchemaFilter
    {
      public void Apply(OpenApiSchema schema, SchemaFilterContext context)
      {
        if (context.Type != typeof(Guid))
        {
          return;
        }
  
        schema.Type = &quot;string&quot;;
        schema.Format = null;
      }
    }
  </code></pre>
  <p>Neither of these approaches change this odd behaviour.</p>
  <p><strong>How can I configure Swagger to pass a string instead of a Guid as part of the URI when I have a custom model binder configured?</strong></p>