Microservice for managing content creation, editing, and deletion within the Cirosky ecosystem. Supports organizing sections and pages with a focus on modular, scalable, and maintainable architecture following Google's Go coding standards. Implements robust unit and integration tests to ensure code quality and high coverage
Cirosky es un servicio diseñado para almacenar y organizar escritos, ideas, proyectos y documentación, facilitando la gestión de información tanto personal como colaborativa. Este microservicio se integra en el ecosistema de Cirosky, proporcionando una solución robusta para la creación, edición y eliminación de secciones y páginas de contenido.
Este proyecto sigue las recomendaciones de estilo de código sugeridas por Google para Go. Puedes consultar la Guía de Estilo de Go de Google para obtener más información.
Se implementarán pruebas unitarias y de integración para garantizar la funcionalidad del microservicio. El objetivo es mantener una cobertura de código igual o superior al 80%. Se utilizarán los siguientes tipos de pruebas:
- Pruebas Unitarias: Para funciones y métodos individuales.
- Pruebas de Integración: Para validar la interacción entre diferentes componentes del sistema.
-
Obtener todas las secciones y sus páginas
- Endpoint:
GET /sections
- Tareas:
- Implementar la lógica para listar todas las secciones parciales de forma paginada
- Endpoint:
-
Obtener el contenido de una página específica
- Endpoint:
GET /sections/{sectionId}/pages/{pageId}
- Tareas:
- Implementar la lógica para buscar una sección por su
sectionId
. - Implementar la lógica para obtener el contenido de la página por su
pageId
.
- Implementar la lógica para buscar una sección por su
- Endpoint:
-
Buscar secciones y páginas
- Endpoint:
GET /sections/search?query={query}
- Tareas:
- Implementar la lógica de búsqueda de paginas y sections por query
- Endpoint:
-
Crear una nueva sección
- Endpoint:
POST /sections
- Tareas:
- Implementar la lógica para crear una sección.
- Endpoint:
-
Crear una nueva página dentro de una sección
- Endpoint:
POST /sections/{sectionId}/pages
- Tareas:
- Implementar la lógica para crear una página en una sección existente.
- Endpoint:
- Modificar el nombre de una sección
- Endpoint:
PUT /sections/{sectionId}
- Tareas:
- Implementar la lógica para actualizar el nombre de una sección.
- Lógica para cambiar el nombre de una pagina
- Lógica para modificar y guardar el contenido de una pagina
- Endpoint:
-
Eliminar una sección y todas sus páginas
- Endpoint:
DELETE /sections/{sectionId}
- Tareas:
- Implementar la lógica para eliminar una sección y sus páginas.
- Endpoint:
-
Eliminar una página específica
- Endpoint:
DELETE /sections/{sectionId}/pages/{pageId}
- Tareas:
- Implementar la lógica para eliminar una página específica.
- Endpoint:
- Implementar Documentación de la API
- Pruebas de Integración
- Refactorización y Optimización
- Dejar documentado que el manejo de errores va orientado a panics, con un error handler comun que trabaja de acuerdo al error generado el es quien determina cuando lanzar o no un panic, que será controlado por un middleware central
- No olvidar hacer las pruebas unitarias y de integración
- Tratar de lanzar un panic en cada capa para asegurarme de que el middeware está trabanado como se debe
Si deseas contribuir a este proyecto, sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama para tu característica (
git checkout -b feature/nueva-caracteristica
). - Realiza tus cambios y confirma (
git commit -m 'Agrega nueva característica'
). - Envía tus cambios a tu repositorio (
git push origin feature/nueva-caracteristica
). - Abre un Pull Request para revisar tus cambios.
¡Gracias por tu interés en colaborar en Cirosky!