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
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.
¿Me invitas a un café? ☕
Puedes hacerlo usando el terminal.
ssh customer@andros.dev -p 5555
Comentarios
Nuevo comentario
Nueva replica {{ formatEllipsisAuthor(replyComment.author) }}
Escribe el primer comentario
{{ comments.length }} comentarios