import PropTypes from 'prop-types'; import { Accordion } from 'react-bootstrap'; import 'bootstrap/dist/css/bootstrap.min.css'; const ApiDocs = ({ json }) => { if (!json) return

No hay documentación disponible.

; const renderEndpoints = (endpoints) => ( {endpoints.map((ep, index) => ( {ep.method} {ep.path} {ep.description &&

{ep.description}

} {ep.params?.length > 0 && (
{ep.params.map((param, i) => (
{param.name} {param.in}
Tipo: {param.type}
¿Requerido?: {param.required ? 'Sí' : 'No'}
{param.description &&
Descripción: {param.description}
}
))}
)}
))}
); return (

{json.name} v{json.version}

API de Lógica

{renderEndpoints(json.logic_api)}

API de Datos (Raw)

{renderEndpoints(json.raw_api)}
); }; const getMethodColor = (method) => { switch (method.toUpperCase()) { case 'GET': return 'success'; case 'POST': return 'primary'; case 'PUT': return 'warning'; case 'DELETE': return 'danger'; default: return 'secondary'; } }; ApiDocs.propTypes = { json: PropTypes.shape({ name: PropTypes.string.isRequired, version: PropTypes.string.isRequired, logic_api: PropTypes.array, raw_api: PropTypes.array }).isRequired }; export default ApiDocs;