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;