Generador de documentación RESTful API con sistema de autenticación dual integrado
APIDoc 4.0 es un fork mantenido del proyecto original apidoc con un sistema de autenticación dual completamente integrado que permite proteger la documentación mediante autenticación local y/o remota.
npm install -g @hrefcl/apidoc
Crear apidoc.json
:
{
"name": "Mi API Protegida",
"version": "1.0.0",
"description": "API con documentación protegida",
"login": {
"active": true,
"admited": [
{
"email": "admin@miempresa.com",
"password": "mi_password_seguro"
}
]
}
}
apidoc -i src/ -o docs/
npx serve docs/ -p 8080
# Abrir http://localhost:8080
# Login con: admin@miempresa.com / mi_password_seguro
¡Listo! Tu documentación ahora requiere autenticación para acceder.
Usuarios definidos directamente en la configuración:
{
"login": {
"active": true,
"admited": [
{"email": "dev@empresa.com", "password": "dev123"},
{"email": "qa@empresa.com", "password": "qa123"},
{"email": "admin@empresa.com", "password": "admin123"}
]
}
}
Ideal para:
Integración con tu API de autenticación:
{
"login": {
"active": true,
"urlAuth": "https://api.miempresa.com/auth/login",
"value_form": {
"email": "email",
"password": "password"
},
"response_success": 200,
"response_error": 401
}
}
Ideal para:
Combina ambos métodos (local + remota):
{
"login": {
"active": true,
"admited": [
{"email": "admin@local.com", "password": "emergency123"}
],
"urlAuth": "https://sso.empresa.com/oauth/token",
"value_form": {"email": "username", "password": "password"},
"response_success": 200
}
}
Ideal para:
{
"login": {
"active": true,
"admited": [
{"email": "user@test.com", "password": "test123"}
],
"urlAuth": "https://api.auth.com/login",
"value_form": {
"email": "user_email",
"password": "user_pass"
},
"response_success": 200,
"response_error": 422,
"sessionTimeout": 3600,
"encryptContent": true
}
}
{
"login": {
"active": true,
"admited": [
{
"email": "admin@empresa.com",
"password": "CambiameEnProduccion2024!"
}
]
}
}
Recomendaciones:
{
"name": "API Interna - MiStartup",
"login": {
"active": true,
"admited": [
{"email": "founder@startup.com", "password": "founder2024"},
{"email": "cto@startup.com", "password": "tech2024"},
{"email": "dev1@startup.com", "password": "dev2024"},
{"email": "qa@startup.com", "password": "quality2024"}
]
}
}
{
"name": "API Corporativa",
"login": {
"active": true,
"urlAuth": "https://auth.empresa.com/api/v1/authenticate",
"value_form": {"email": "username", "password": "password"},
"response_success": 200,
"response_error": 401
}
}
{
"name": "API Enterprise",
"login": {
"active": true,
"admited": [
{"email": "emergency@corp.com", "password": "EmergencyAccess2024!"}
],
"urlAuth": "https://sso.corp.com/oauth/v2/token",
"value_form": {"email": "email", "password": "password"},
"response_success": 200
}
}
# Después de generar documentación
cd docs/
# Validación completa del sistema
node validate-system.js
# Test de credenciales
node test-credentials.js
# Flujo completo de testing
node final-test-guide.js
apidoc -i src/ -o docs/
npx serve docs/ -p 8080
server {
listen 443 ssl;
server_name docs.miapi.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
root /var/www/apidoc;
index index.html;
try_files $uri $uri/ =404;
# Headers de seguridad
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
}
}
FROM nginx:alpine
COPY docs/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
{
"functions": [],
"rewrites": [
{"source": "/(.*)", "destination": "/index.html"}
],
"headers": [
{
"source": "/(.*)",
"headers": [
{"key": "X-Frame-Options", "value": "DENY"},
{"key": "X-Content-Type-Options", "value": "nosniff"}
]
}
]
}
Característica | APIDoc 4.0 | Swagger UI | Redoc | Postman |
---|---|---|---|---|
Autenticación Integrada | ✅ Dual | ❌ No | ❌ No | ✅ Teams |
Generación desde Código | ✅ Comments | ❌ Manual | ❌ Manual | ❌ Manual |
Encriptación Contenido | ✅ AES-256 | ❌ No | ❌ No | ❌ No |
Self-hosted | ✅ Sí | ✅ Sí | ✅ Sí | ❌ Cloud |
Costo | ✅ Free | ✅ Free | ✅ Free | 💰 Paid |
Personalización | ✅ Total | ⚠️ Limitada | ⚠️ Limitada | ❌ No |
# Clonar repositorio
git clone https://github.com/hrefcl/apidoc.git
cd apidoc
# Instalar dependencias
npm install
# Desarrollo con hot reload
npm run dev:template
# Testing
npm run build:example
npm test
git checkout -b feature/auth-mejora
git commit -m 'Add: nueva funcionalidad'
git push origin feature/auth-mejora
"APIDoc 4.0 nos permitió proteger nuestra documentación interna sin cambiar nuestro workflow de desarrollo. La autenticación dual es perfecta para nuestro equipo híbrido."
— María González, CTO @ TechStartup
"La integración con nuestro SSO empresarial fue increíblemente sencilla. En 30 minutos teníamos documentación protegida desplegada en producción."
— Carlos Rodríguez, DevOps Lead @ Corp Enterprise
apidoc
Para soporte dedicado, consultoría e implementación custom:
MIT License - Ver archivo LICENSE para detalles completos.
🚀 ¿Listo para proteger tu documentación API?
📖 Documentación • 🚀 Quick Start • 🛠️ Developer Guide
Hecho con ❤️ para la comunidad de desarrolladores