我有一个端点采用自定义类型(在这种特殊情况下是一个NodaTime.LocalDate)。该类型具有自定义模型绑定器,并使用MapType<>
在Swagger中进行映射。
当路径中使用类型作为路径参数时,端点不会显示在Swagger / Swashbuckle中。但是,如果我将其删除(以便将其作为URL参数包含在内),则显示正常。
端点的简单版本:
public class MyController : System.Web.Http.ApiController
{
[Route( "my/route/{date}" )] // Doesn't show up
[Route( "my/route" )] // Does show up
[HttpPut]
public Task<IHttpActionResult> MyEndpoint( LocalDate date, InputModel inputModel ) {
// Do stuff...
}
}
请注意,两个端点实际上都可以正常工作,但只是没有显示。如果我将类型更改为DateTime
,我也可以显示两个端点 - 但我不希望这样,因为这会改变有效的输入集。
答案 0 :(得分:0)
我通过从字符串添加自定义绑定和自定义转换器解决了这个问题。 需要执行这些操作,以便ApiExplorer解析路径。之后,Swagger也解决了这条路线。