Comprende el código bien previamente a utilizarlo a tu trabajo y si tquieres aportar algo puedes compartirlo con nosotros.
Solución:
La forma en que Swagger funciona extrae parámetros basados en su firma de Acción, es decir, parámetros para su Acción, pero aquí está obteniendo estos valores de ControllerContext que, obviamente, Swagger nunca conocerá.
Por lo tanto, debe cambiar la firma de la Acción y pasar sus parámetros allí.
Serán tratados como opcionales si los hace de tipo anulable:
[HttpGet]
[Route("students")]
[SwaggerOperation(Tags = new[] "Student" )]
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(ResponseModel>))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(StudentResponseExample))]
[SwaggerResponse(HttpStatusCode.InternalServerError)]
public IHttpActionResult SearchStudent(long? SyncDate = null,int? OffSet = null,int? Limit = null)
// Use the variables now here
.
.
.
Esto funcionó para mí:
[System.Web.Http.HttpGet]
[Route("api/DoStuff/reqParam")]
[Route("api/DoStuff/reqParam/optParam1:alpha?/optParam2:datetime?")]
public string Get(string reqParam, string optParam1= "", string optParam2= "")
Creó dos secciones en mi interfaz de usuario de Swagger, pero eso funciona para mí.
Aquí tienes las comentarios y calificaciones
Si piensas que ha resultado de provecho nuestro artículo, sería de mucha ayuda si lo compartieras con más programadores así contrubuyes a difundir este contenido.