Aprende a construir una vista basada en funciones con Django Rest Framework para listar pacientes en JSON . Con un serializer , una query simple y el decorador ApiView , tendrás un endpoint limpio, validado y listo para usarse en frontend o pruebas rápidas.
¿Cómo listar pacientes con un serializer en Django Rest Framework?
Crear una vista para devolver datos en JSON es directo cuando usamos Response y un serializer . El flujo es: consultar la base de datos, serializar la lista y responder en un formato correcto.
Importar el serializer de pacientes.
Consultar la base de datos con Patient.objects.all().
Serializar una lista con many=True.
Responder con Response(serializer.data).
Ejemplo de estructura en views.py:
# views.py
from rest_framework . response import Response
from rest_framework . decorators import ApiView
from . serializers import PatientSerializer
from . models import Patient
@ApiView ( [ 'get' ] )
def ListPatients ( request ) :
patients = Patient . objects . all ( )
serializer = PatientSerializer ( patients , many = True )
return Response ( serializer . data )
Puntos clave que refuerzan buenas prácticas:
Variables en minúscula: patients, serializer.
many=True indica que el serializer debe procesar cada ítem de la lista.
La clase Response de DRF devuelve un JSON correctamente formateado y puede configurarse para otros formatos como XML .
¿Qué parámetros clave usa el serializer?
Objeto o lista a serializar: el queryset de pacientes.
many=True: esencial cuando se serializa un listado.
Acceso a datos serializados: serializer.data.
¿Para qué sirve el decorador ApiView y el método get?
El decorador ApiView habilita compatibilidad DRF sobre una vista basada en función y permite fijar qué métodos HTTP acepta.
Limitar el endpoint a GET : evita usos no deseados como POST en la misma ruta.
Recibir request aunque no se use aún: prepara futuras mejoras.
DRF añade capacidades extra en la interfaz de exploración: options , get y cambio de formato rápido.
Detalles que facilitan el testeo y lectura:
La interfaz navegable de DRF muestra headers y la estructura del JSON .
Cambiar a solo JSON es posible con el selector de formato (útil para frontend ).
Observación importante: las fechas se ven como cadena, aunque en el model de Python sean DateTime.
¿Cómo publicar la URL y probar el endpoint en JSON?
Para usar la vista, crea la ruta en el archivo de URLs y ejecuta el servidor de desarrollo.
# urls.py
from django . urls import path
from patients import views
urlpatterns = [
path ( 'api-patients' , views . ListPatients ) ,
]
Ejecución y prueba:
Iniciar el servidor: manage.py runserver.
Visitar la ruta: api-patients.
Verás los campos de todos los pacientes en formato JSON .
Siguientes pasos propuestos:
Crear un endpoint con método POST para registrar un paciente.
Validar la entrada usando el serializer respecto al model .
Reutilizar la lógica de DRF para confirmar que los datos son válidos antes de guardar.
¿Ya implementaste el POST para crear pacientes con validación mediante serializer ? Comparte el código en los comentarios y cuéntanos cómo te fue.