Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Fullstack con Python > Backend con Python > Sesión 05 > Proyecto

Creando un API para realizar las operaciones CRUD de una tabla

OBJETIVOS

  • Agregar la relación entre los modelos Tour y Salida.
  • Realizar operaciones de CRUD vía API para la tabla Salida incluyendo los tours asociados.

REQUISITOS

  1. Actualizar repositorio

  2. Usar la carpeta de trabajo Sesion-05/Proyecto

  3. Activar el entorno virtual Bedutravels

  4. Diagrama de entidad-relación del proyecto Bedutravels

    Diagrama entidad-relación

DESARROLLO

  1. Se modifica el archivo serializers.py para que se muestre la lista de salidas:

    class SalidaSerializer(serializers.HyperlinkedModelSerializer):
        """ Serializador para atender las conversiones para Salida """
        class Meta:
            # Se define sobre que modelo actúa
            model = Salida
            # Se definen los campos a incluir
            fields = ('id', 'fechaInicio', 'fechaFin', 'asientos', 'precio', 'tour')

    Se agrega la url /api/salidas/:

    router.register(r'salidas', views.SalidaViewSet)   

    Se agrega la vista:

    class SalidaViewSet(viewsets.ModelViewSet):
        """
        API que permite realizar operaciones con la tabla Salida
        """
        # Se define el conjunto de datos sobre el que va a operar la vista,
        # en este caso, sobre todos las salidas disponibles.
        queryset = Salida.objects.all().order_by('id')
    
        # Se define el serializador encargado de transformar las peticiones
        # de json a objetos django y viceversa.
        serializer_class = SalidaSerializer

    El resultado debe ser como el siguiente:

    Lista de salidas


  2. Se actualiza el serializador TourSerializer en el archivo Bedutravels/tours/serializers.py para agregar el campo salidas para que muestre la lista de salidas por cada tour:

            # Se definen los campos a incluir
            fields = ('id', 'slug', 'nombre', 'operador', 'tipoDeTour',
                'descripcion', 'img', 'pais', 'zonaSalida', 'zonaLlegada',
                'salidas')

  3. Acceso y uso de la API /api/tours

    Para tener acceso al API abrir la siguiente url:

    http://localhost:8000/api/tours/

    Se deberá de observar algo similar a lo siguiente:

    bedutravels API tours con salidas

    Para tener acceso al detalle del tour con id=1 abrir la siguiente url:

    http://localhost:8000/api/tour/1/

    Se deberá de observar algo similar a lo siguiente:

    bedutravels API un tour