2025-05-17 11:36:26 -04:00

133 lines
3.0 KiB
Markdown

# 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
}'
```