Crear endpoint
Skill eduardo-lezama/intranet-dashboard/.windsurf.bak/skills/crear-endpoint
Intranet dashboard based on html, css and js. Includes advance use of agentic workflows and MCP. For personal use with my own info panels, automation and IoT related stuff
npx -y skills add eduardo-lezama/intranet-dashboard --skill crear-endpointAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Usar al crear un nuevo endpoint API en blueprints/main.py
SKILL.md
2.3 KB, as published. Nobody here has run it
Cuándo usar esta skill
- Al crear un nuevo endpoint
/api/[recurso] - Cuando se necesite exponer datos de un servicio externo
- Para añadir nuevas rutas al blueprint principal
Contexto necesario antes de empezar
- Leer
blueprints/main.pypara ver patrones existentes - Verificar si ya existe un cliente para el servicio
- Comprobar configuración necesaria en
config.py
Pasos
1. Definir el endpoint
- Ruta:
/api/[recurso] - Método: GET (lectura), POST (crear), DELETE (eliminar)
- Respuesta: JSON
2. Añadir configuración (si es necesario)
# En config.py, clase Config
NUEVO_SERVICIO_URL = env_target('NUEVO_SERVICIO_URL', 'http://local', 'http://docker')
NUEVO_SERVICIO_TOKEN = env_str('NUEVO_SERVICIO_TOKEN')
3. Crear cliente (si hay API externa)
- Usar skill
@crear-cliente
4. Implementar endpoint en blueprints/main.py
@main_bp.route('/api/nuevo')
@cache.cached(timeout=180)
def api_nuevo():
"""Descripción del endpoint"""
try:
url = current_app.config.get('NUEVO_SERVICIO_URL')
token = current_app.config.get('NUEVO_SERVICIO_TOKEN')
if not url:
return jsonify({'error': 'NUEVO_SERVICIO_URL no configurado'}), 500
client = NuevoClient(url, token)
data = client.get_data()
return jsonify(data)
except Exception as e:
current_app.logger.error(f"Error nuevo: {str(e)}")
return jsonify({'error': str(e)}), 500
5. Validar
ruff check blueprints/main.py
python -c "from app import app"
<patrones_criticos> SIEMPRE:
- Usar
@cache.cached()para endpoints de lectura - Validar configuración antes de usar
- Logging de errores con
current_app.logger.error() - Retornar JSON con estructura consistente
NUNCA:
- Endpoints sin manejo de errores
- Hardcodear URLs o tokens
- Usar
print()en lugar de logger
PREFERENTEMENTE:
- Timeout de cache según frecuencia de cambio del dato
- Docstring describiendo el endpoint </patrones_criticos>
Checklist de validación
- Endpoint responde correctamente
- Errores se manejan y loguean
- Cache configurado apropiadamente
-
ruff check .pasa - Documentado en README si es público