Principales respuestas
Duda responses en API Rest

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
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- Propuesto como respuesta Sergio ParraModerator martes, 21 de julio de 2020 10:05
- Marcado como respuesta Sergio ParraModerator viernes, 31 de julio de 2020 7:24
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- Propuesto como respuesta Sergio ParraModerator martes, 21 de julio de 2020 10:05
- Marcado como respuesta Sergio ParraModerator viernes, 31 de julio de 2020 7:24
-
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
-
-
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- Propuesto como respuesta Gabriel Castro RModerator martes, 21 de julio de 2020 21:10
-
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.