# Proyecto Go para consumo de SOAP APIs ## Estructura del proyecto ``` soap-api-client/ ├── cmd/ │ └── api/ │ └── main.go ├── configs/ │ └── config.yaml ├── internal/ │ ├── api/ │ │ ├── handler.go │ │ └── router.go │ ├── config/ │ │ └── config.go │ ├── database/ │ │ ├── postgres.go │ │ └── models.go │ ├── soap/ │ │ ├── client.go │ │ ├── api1/ │ │ │ ├── client.go │ │ │ ├── models.go │ │ │ └── transformers.go │ │ └── api2/ │ │ ├── client.go │ │ ├── models.go │ │ └── transformers.go │ └── logger/ │ └── logger.go ├── pkg/ │ ├── errors/ │ │ └── errors.go │ ├── soap/ │ │ └── soap.go │ └── utils/ │ └── utils.go ├── go.mod └── go.sum ``` ## Inicialización del proyecto ```bash mkdir -p soap-api-client/cmd/api mkdir -p soap-api-client/configs mkdir -p soap-api-client/internal/api mkdir -p soap-api-client/internal/configs mkdir -p soap-api-client/internal/database mkdir -p soap-api-client/internal/soap/api1 mkdir -p soap-api-client/internal/soap/api2 mkdir -p soap-api-client/internal/logger mkdir -p soap-api-client/pkg/errors mkdir -p soap-api-client/pkg/soap mkdir -p soap-api-client/pkg/utils cd soap-api-client go mod init github.com/yourusername/soap-api-client ``` ## Comandos para la ejecución ```bash # Iniciar la aplicación go run cmd/api/main.go # Construir la aplicación go build -o soap-api-client cmd/api/main.go # Ejecutar la aplicación construida ./soap-api-client ``` ## Comandos para la ejecución ```bash # Iniciar la aplicación go run cmd/api/main.go # Construir la aplicación go build -o soap-api-client cmd/api/main.go # Ejecutar la aplicación construida ./soap-api-client ``` ## Ejemplos de uso ### Ejemplo de solicitud GetData a API1 ```bash curl -X POST http://localhost:9999/api/v1/api1/get-data \ -H "Content-Type: application/json" \ -d '{ "id": "12345", "type": "CUSTOMER", "date": "2023-12-01" }' ``` ### Ejemplo de solicitud de transacción a API2 ```bash curl -X POST http://localhost:9999/api/v1/api2/process-transaction \ -H "Content-Type: application/json" \ -d '{ "transactionId": "TX789012", "accountId": "ACC123", "amount": 100.50, "currency": "USD", "description": "Pago de servicio" }' ``` ### Ejemplo de obtención de parámetros ```bash curl -X GET http://localhost:9999/api/v1/parameters ``` ### Ejemplo de actualización de parámetro ```bash curl -X PUT http://localhost:9999/api/v1/parameters/soap.api1.endpoint \ -H "Content-Type: application/json" \ -d '{ "value": "https://new-api1.example.com/soap", "description": "Nuevo endpoint para API 1", "active": true }' ```