LinkedListApi es un proyecto desarrollado en C# .NET Core 8 que implementa una API REST sencilla para manejar una lista enlazada en memoria estática. Este proyecto permite agregar, eliminar y consultar nodos en la lista enlazada, usando endpoints RESTful.
- GET /linked-list/: Devuelve el estado actual de la lista enlazada.
- POST /linked-list/: Agrega un nodo a la lista enlazada con un valor proporcionado. Retorna un
GUIDúnico generado para el nodo. - DELETE /linked-list/{id}: Elimina un nodo de la lista enlazada utilizando su
GUID.
- Lenguaje: C#
- Framework: .NET Core 8
- Estructura de Datos: Lista enlazada implementada en memoria estática
- Formato de Comunicación: JSON
- Herramientas de Desarrollo: Visual Studio 2022
Antes de comenzar, asegúrate de tener instalado lo siguiente:
- Visual Studio 2022 con el workload de ASP.NET y desarrollo web
- .NET SDK 8.0
-
Clona el repositorio:
git clone https://github.com/Preko700/LinkedListApi.git cd LinkedListApi -
Abre el proyecto en Visual Studio 2022.
-
Restaura las dependencias del proyecto:
- Visual Studio lo hace automáticamente al abrir el proyecto.
- Alternativamente, puedes usar:
dotnet restore
-
Ejecuta la aplicación:
- Presiona
F5o haz clic en el botón "Iniciar" en Visual Studio. - La API estará disponible en
https://localhost:<puerto>ohttp://localhost:<puerto>.
- Presiona
- Descripción: Obtiene el estado actual de la lista enlazada.
- Respuesta exitosa:
[ { "id": "GUID", "value": "valor" }, { "id": "GUID", "value": "otro valor" } ]
- Descripción: Agrega un nuevo nodo a la lista enlazada.
- Request Body:
{ "value": "valor" } - Respuesta exitosa:
{ "id": "GUID" }
- Descripción: Elimina un nodo de la lista enlazada utilizando su
GUID. - Parámetro:
id: El GUID del nodo a eliminar.
- Respuesta exitosa: Código de estado
204 No Content.
-
Descarga e instala Postman.
-
Configura los siguientes endpoints para probar la API:
-
GET /linked-list/
- Método:
GET - URL:
http://localhost:<puerto>/linked-list/
- Método:
-
POST /linked-list/
- Método:
POST - URL:
http://localhost:<puerto>/linked-list/ - Headers:
Content-Type: application/json
- Body:
{ "value": "Ejemplo de valor" }
- Método:
-
DELETE /linked-list/{id}
- Método:
DELETE - URL:
http://localhost:<puerto>/linked-list/{id}
- Método:
LinkedListApi/
├── Controllers/
│ └── LinkedListController.cs -> Controlador para los endpoints de la API
├── Models/
│ ├── LinkedList.cs -> Modelo de la lista enlazada
│ ├── LinkedListNode.cs -> Modelo de un nodo de la lista enlazada
│ └── AddNodeRequest.cs -> DTO para solicitudes POST
├── Services/
│ └── LinkedListService.cs -> Servicio singleton para manejar la lógica de la lista
├── Program.cs -> Configuración y punto de entrada de la aplicación
├── Properties/ -> Configuración del proyecto
└── README.md -> Documentación del proyecto
¡Las contribuciones son bienvenidas! Si deseas contribuir:
- Haz un fork del repositorio.
- Crea una rama para tu funcionalidad (
git checkout -b feature/nueva-funcionalidad). - Haz commit de tus cambios (
git commit -m 'Añade nueva funcionalidad'). - Sube tu rama (
git push origin feature/nueva-funcionalidad). - Abre un Pull Request en este repositorio.
Este proyecto está bajo la Apache 2.0. Siéntete libre de usarlo, modificarlo y distribuirlo.