Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

245
Vistas
Ruta del controlador no encontrada si contiene una versión

Tengo problemas al intentar enrutar a un controlador cuando se incluye a través de un proyecto externo. El controlador en cuestión funciona bien cuando se incluye directamente en el proyecto o desde el proyecto externo SOLO cuando el campo de versión se elimina de la ruta. El controlador se define como se muestra a continuación.

 [ApiController] [ApiVersion("1.0")] [Produces("application/json")] [Route("api/v{version:apiVersion}/devices")] [Authorize(Roles = UserConst.PermissionGroup.Admin)] public class DeviceManagementController : ControllerBase{...}

Cambiar la ruta a la siguiente funciona correctamente

 [Route("api/devices")]

Cambiar la ruta a la siguiente falla de la misma manera que incluirla a través de {version:apiVersion}

 [Route("api/v1.0/devices")]

¿Alguna idea sobre lo que podría estar mal? Con cualquier información de versión, el servidor parece devolver la página de índice predeterminada, que es la alternativa cuando no se puede encontrar un controlador.

Código de Startup.cs para agregar versiones de Api

 services.AddApiVersioning(config => { config.DefaultApiVersion = new ApiVersion(1, 0); config.AssumeDefaultVersionWhenUnspecified = true; config.ReportApiVersions = true; });
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

He hecho algunas pruebas.

Al principio agregué [Route("api/devices")] a los atributos de su controlador

 [ApiController] [ApiVersion("1.0")] [Produces("application/json")] [Route("api/v{version:apiVersion}/devices")] [Route("api/devices")] public class DeviceManagementController : ControllerBase

y encontré que url .../api/v1.0/devices funciona correctamente.

Después de esto, intenté usar solo .../api/url de dispositivos.

  1. Funcionaba correctamente con el atributo [ApiVersion("1.0")]

  2. Emitió un error de versión incorrecta cuando cambié el atributo a [ApiVersion("2.0")]

así que todo estaba funcionando como se esperaba.

Resumen:

Te recomiendo que agregues [Route("api/devices")] y trates de usar.../api/devices url como una solución por ahora, hasta que encuentres algo mejor.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda