Lección 1: Introducción

En el siguiente curso me gustaría que aprendieras a conseguir un CRUD en Django usando REST Framework, una herramienta estandarizada para la creación de APIs con Django, y en segundo lugar, con Python.

Los requisitos mínimos son:

  • Disponer instalada la versión más actualizada posible de Python 3.
  • Un editor de texto. Te recomiendo, si estas empezando, Pycharm Community Edition o VSCode con el plugin de Python.
  • Acceso al terminal.

Los objetivos a conseguir son los esenciales en cualquier API:

  • Endpoint que liste libros.
  • Endpoint que nos muestre los detalles de un libro concreto.
  • Endpoint para añadir un libro.
  • Endpoint para actualizar un libro existe.
  • Endpoint que borre un libro existe.
  • Crear test para todos los Endpoints que nos aseguren su funcionamiento en cualquier circunstancia.

Si eres impaciente y quieres probar in situ los resultados puedes abrir el terminal. A continuación puedes atacar a un servidor donde esta levantado una copia del código que vas a aprender.

Listar libros

curl  https://example-of-crud-in-django-jrf.herokuapp.com/api/book/

Salida

[
    {
        "id": 1,
        "title": "Things Fall Apart",
        "country": "Nigeria",
        "year": 1958,
        "author": "Chinua Achebe",
        "created_at": "2021-07-15T14:27:14.927177",
        "updated_at": "2021-07-15T14:27:14.927213"
    },
    {
        "id": 2,
        "title": "Fairy tales",
        "country": "Denmark",
        "year": 1836,
        "author": "Hans Christian Andersen",
        "created_at": "2021-07-15T14:27:14.930223",
        "updated_at": "2021-07-15T14:27:14.930233"
    },
   ... 

Obtener detalles de un libro

curl https://example-of-crud-in-django-jrf.herokuapp.com/api/book/1/

Salida

{
    "id": 1,
    "title": "Things Fall Apart",
    "country": "Nigeria",
    "year": 1958,
    "author": "Chinua Achebe",
    "created_at": "2021-07-15T14:27:14.927177",
    "updated_at": "2021-07-15T14:27:14.927213"
}

Crear un libro

curl -XPOST -H "Content-type: application/json" -d '{"title": "The foundation", "country": "eeuu", "author": "Isaac Asimov", "year": "1951"}' https://example-of-crud-in-django-jrf.herokuapp.com/api/book/

Salida

{
  "id": 101,
  "title": "The foundation",
  "country": "eeuu",
  "year": 1951,
  "author": "Isaac Asimov",
  "created_at": "2021-07-15T14:47:25.262738",
  "updated_at": "2021-07-15T14:47:25.262753"
}

Actualizar un libro

curl -XPUT -H "Content-type: application/json" -d '{"title": "The End of Eternity", "country": "eeuu", "author": "Isaac Asimov", "year": "1955"}' https://example-of-crud-in-django-jrf.herokuapp.com/api/book/1/

Salida

{
  "id": 1,
  "title": "The End of Eternity",
  "country": "eeuu",
  "year": 1955,
  "author": "Isaac Asimov",
  "created_at": "2021-07-15T14:47:25.262738",
  "updated_at": "2021-07-15T14:50:47.697224"
}

Borrar un libro

curl -XDELETE https://example-of-crud-in-django-jrf.herokuapp.com/api/book/1/

Salida

{
  "id": null,
  "title": "The End of Eternity",
  "country": "eeuu",
  "year": 1955,
  "author": "Isaac Asimov",
  "created_at": "2021-07-15T14:47:25.262738",
  "updated_at": "2021-07-15T14:50:47.697224"
}

Comprobar que el servidor esta activo

curl https://example-of-crud-in-django-jrf.herokuapp.com/ping/

Salida

{"ping": "pong!"}

Si te pierdes en algún paso, no dudes en consultar o descargar el código que tengo alojado en el repositorio de GitHub.

¿Estas preparado? ¡Empezamos!

¿Te ha gustado? Comprame un café

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario