Lección 1: Introducción

DRF

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

Lamentablemente Heroku anunció que eliminaría sus planes gratuitos provocando que los ejemplos de esta lección no estén disponibles para probarlos con curl, ya que estaba desplegado en un Dyno gratutito. La situación sería diferente si el sitio recibiera suficientes donaciones recurrentes. Como no es el caso, puedes testearlo directamente en tu equipo a partir del código que se encuentra en el repositorio de GitHub.

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!

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

Comprame un café
Pulsa sobre la imagen

No te sientas obligado a realizar una donación, pero cada aportación mantiene el sitio en activo logrando que continúe existiendo y sea accesible para otras personas. Además me motiva a crear nuevo contenido.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

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

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

Escribe el primer comentario