{
    "openapi": "3.1.0",
    "info": {
        "title": "API de Wikitólica (HTML)",
        "summary": "Acceso programático a los artículos de la Enciclopedia Católica Wikitólica en formato HTML.",
        "description": "API pública de solo lectura para acceder a artículos de Wikitólica en formato HTML y al listado raíz `suglist.json`, que devuelve un array JSON de títulos.",
        "version": "1.0.0",
        "contact": {
            "name": "Wikitólica",
            "url": "https://www.wikitolica.com"
        },
        "license": {
            "name": "CC BY-SA 4.0",
            "url": "https://creativecommons.org/licenses/by-sa/4.0/"
        }
    },
    "servers": [
        {
            "url": "https://www.wikitolica.com",
            "description": "Servidor principal"
        }
    ],
    "tags": [
        {
            "name": "articulos",
            "description": "Operaciones relacionadas con artículos de la enciclopedia"
        }
    ],
    "paths": {
        "/suglist.json": {
            "get": {
                "operationId": "listarArticulos",
                "tags": [
                    "articulos"
                ],
                "summary": "Lista los títulos de los artículos",
                "description": "Devuelve el catálogo completo de artículos disponibles en la enciclopedia como un JSON de nivel raíz formado por un array de cadenas. Cada elemento del array es únicamente el título del artículo.",
                "responses": {
                    "200": {
                        "description": "Listado obtenido correctamente.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SugList"
                                },
                                "examples": {
                                    "ejemplo": {
                                        "summary": "Ejemplo real del formato de suglist.json",
                                        "value": [
                                            "Ascensión del Señor",
                                            "Santo Tomás de Aquino",
                                            "La Navidad como cumplimiento de las profecías mesiánicas"
                                        ]
                                    }
                                }
                            }
                        }
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorInterno"
                    }
                }
            }
        },
        "/{inicial}/{articulo}/": {
            "get": {
                "operationId": "obtenerArticulo",
                "tags": [
                    "articulos"
                ],
                "summary": "Obtener artículo",
                "description": "Devuelve un artículo individual en formato HTML limpio. La ruta real sigue el patrón `/{inicial}/{articulo}/`, por ejemplo `/s/santo/`.",
                "parameters": [
                    {
                        "name": "inicial",
                        "in": "path",
                        "required": true,
                        "description": "Letra inicial del artículo. Debe coincidir con la primera letra del slug; por ejemplo, `s` en `/s/santo/`.",
                        "schema": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1,
                            "pattern": "^[a-z]$"
                        },
                        "example": "s"
                    },
                    {
                        "name": "articulo",
                        "in": "path",
                        "required": true,
                        "description": "Slug del artículo.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "santo"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Artículo encontrado.",
                        "content": {
                            "text/html": {
                                "schema": {
                                    "type": "string",
                                    "description": "Contenido HTML del artículo."
                                },
                                "examples": {
                                    "ejemplo": {
                                        "value": "<html><body><h1>Santo</h1><p>...</p></body></html>"
                                    }
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ArticuloNoEncontrado"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorInterno"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "Error": {
                "type": "object",
                "required": [
                    "error"
                ],
                "properties": {
                    "error": {
                        "type": "string"
                    }
                },
                "additionalProperties": false
            },
            "SugList": {
                "type": "array",
                "description": "Listado JSON de títulos de artículos disponible en suglist.json.",
                "items": {
                    "type": "string",
                    "description": "Título del artículo."
                }
            }
        },
        "responses": {
            "ArticuloNoEncontrado": {
                "description": "El artículo solicitado no existe.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        },
                        "example": {
                            "error": "Artículo no encontrado"
                        }
                    }
                }
            },
            "ErrorInterno": {
                "description": "Error interno del servidor.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        },
                        "example": {
                            "error": "Error interno"
                        }
                    }
                }
            }
        }
    }
}