Ejercicio de programación con Go: API REST con net/http

Código
Práctica
0h 30m

Go: Desarrolla una API REST usando net/http para manejar tareas. Aprende a implementar funcionalidades esenciales como crear, listar y actualizar en el lenguaje GoLang.

En este ejercicio de programación, se debe desarrollar una API REST en el lenguaje Go empleando el paquete estándar net/http

La API tendrá la funcionalidad de gestionar una lista de tareas. El objetivo es implementar varias funciones esenciales de tal manera que se permita la creación de nuevas tareas, listar todas las tareas almacenadas, actualizar el estado de una tarea en particular y eliminar cualquier tarea específica.

El ejercicio incluye condiciones específicas que deben ser manejadas correctamente, como la generación automática de un identificador secuencial para cada tarea creada y la gestión de errores en caso de que una tarea no se encuentre. 

Las respuestas deberán ser en formato JSON, y es obligatorio incluir los códigos de estado HTTP que sean adecuados para cada operación, tales como 201 Created, 200 OK, y 404 Not Found si ocurre un error. 

Este tipo de reto no solamente evalúa las habilidades de programación, sino también el entendimiento del protocolo HTTP y cómo se traduce a la construcción de una API funcional y eficiente dentro del entorno de Go.

Desarrolla un API REST en Go utilizando el paquete estándar net/http que permita gestionar una lista de tareas (tasks). Implementa las siguientes funcionalidades:

  • Crear una tarea: Utiliza una petición HTTP POST a la ruta /tasks para añadir una nueva tarea. La información de la tarea debe incluir un id, un nombre y un estado (pendiente o completado) en formato JSON. Asigna automáticamente el id de la tarea como un número secuencial basado en la longitud actual de la lista de tareas.
  • Listar todas las tareas: Utiliza una petición HTTP GET a la ruta /tasks para devolver la lista completa de tareas en formato JSON.
  • Actualizar el estado de una tarea: Utiliza una petición HTTP PATCH a la ruta /tasks/{id} para actualizar el estado de una tarea específica. Asegúrate de manejar correctamente los casos en los que el id no exista.
  • Eliminar una tarea: Utiliza una petición HTTP DELETE a la ruta /tasks/{id} para eliminar una tarea específica de la lista. Devuelve un error si el id no se encuentra.

Requisitos adicionales:

  • Todos los manejadores deben devolver respuestas HTTP adecuadas, como 201 Created, 200 OK, 204 No Content, y 404 Not Found cuando corresponda.
  • Asegúrate de que las respuestas del API estén en formato JSON y que incluyan los encabezados HTTP apropiados para indicar el tipo de contenido.
Empezar ejercicio de programación

Todos los ejercicios de programación de Go

Evalúa tus conocimientos con ejercicios de programación en Go de tipo Test, Puzzle, Código y Proyecto con VSCode.

Certificados de superación de Go

Supera todos los retos de Go y obtén estos certificados de superación para mejorar tu currículum y tu empleabilidad.

Tutorial para resolver este ejercicio de programación

Go

Go

API REST con net/http

Comunicación por HTTP

Otros tutoriales de programación con Go