none
Duda responses en API Rest RRS feed

  • Pregunta

  • Buenas noches, tengo una duda con la construcción de un servicio REST.

    Digamos que tengo una clase que tiene las propiedades de un  usuario (nombre, apellido, rol, activo, etc).

    Mi controlador va a tener dos métodos, ambos buscan información del usuario, pero un metodo ocupa unos campos y el otro metodo ocupa otros campos mas.

    Mi duda es la siguiente:


    La duda es, tengo que crear dos objetos diferentes para cada respuesta? o puedo usar la misma clase aunque uno de los métodos no ocupe todas las propiedades?

    Esto me surge ya que cuando implemento swagger, en los dos metodos me dice que regresa el mismo objeto, cuando en realidad si es el mismo, pero no ambos ocupan las mismas propiedades. y quisiera que swagger me especificara que campos ocupa cada metodo.

    ¿o cual es la mejor practica para estos casos?

    Espero haber sido claro en mi duda, y de antemano muchas gracias por la atención.


    Hugo Gil


    • Editado Hugo Gil martes, 21 de julio de 2020 3:48 mas información
    martes, 21 de julio de 2020 3:44

Respuestas

  • hola

    >>puedo usar la misma clase aunque uno de los métodos no ocupe todas las propiedades?

    podrias usar herencia

    public class UsuarioDto{
    
       //algunas propiedades
    
    }
    
    public class UsuarioExtDto : UsuarioDto {
    
       //mas propiedades
    
    }


    Use estos nombres pero puedes ponerles otros que se adapten mejor a tu negocio, en este caso Ext es de Extended o extendido

    entonces usas una clase para retornar en cada endpoint de la webapi

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 21 de julio de 2020 4:16

Todas las respuestas

  • hola

    >>puedo usar la misma clase aunque uno de los métodos no ocupe todas las propiedades?

    podrias usar herencia

    public class UsuarioDto{
    
       //algunas propiedades
    
    }
    
    public class UsuarioExtDto : UsuarioDto {
    
       //mas propiedades
    
    }


    Use estos nombres pero puedes ponerles otros que se adapten mejor a tu negocio, en este caso Ext es de Extended o extendido

    entonces usas una clase para retornar en cada endpoint de la webapi

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 21 de julio de 2020 4:16
  • Que tal Leandro, muchas gracias por la respuesta, pero entonces digamos si tengo otro método que regresa las ventas por usuario, entonces tengo una clase ventasdto y dentro de ventasdto tengo usuariodto y aquí solo ocupa id y nombre, este debería ser otro objeto diferente a los otros? 

    Hugo Gil

    martes, 21 de julio de 2020 5:16
  • Hola Hugo Gil

     

    ¿Alguna novedad sobre la consulta realizada? Gracias por usar los foros de MSDN.  

     

    Saludos cordiales

    Gabriel Castro

    martes, 21 de julio de 2020 12:51
    Moderador
  • hola

    >>entonces tengo una clase ventasdto y dentro de ventasdto tengo usuariodto

    Pero necesitas los datos del usuario? si son ventas para un usuario usas este como filtro en el where no retornas lo mismo por lo cual estas filtrando

    Si vas a devolver las ventas de varios usuario entonces si el UsuarioDto es otro clase, salvo que aplanes esos datos como id y nombre como propiedades simple de VentasDto

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 21 de julio de 2020 17:31
  • Hola Hugo Gil,

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las respuestas proporcionadas?

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    jueves, 30 de julio de 2020 22:58
    Moderador