Este SDK proporciona una interfaz en Go para interactuar con la API de Cotalker, facilitando la gestión de colecciones y sus elementos.
Para usar el SDK en tu proyecto:
go get github.com/felipeinf/cotalker-goEl SDK requiere las siguientes variables de entorno:
BASE_URL=https://staging.cotalker.com # URL base de la API
COTALKER_TOKEN=tu_token_aqui # Token de acceso
COMPANY_ID=tu_company_id # ID de la compañíaTambién puedes configurar estas variables programáticamente al crear el cliente:
client := cotalker.NewClient(baseURL, accessToken, companyID)import "github.com/felipeinf/cotalker-go/pkg/cotalker"
client := cotalker.NewClient(baseURL, accessToken, companyID)// Crear una colección
schemaNodes := []models.SchemaNode{
{
Weight: 1,
Key: "name",
Display: "Nombre",
BasicType: models.BasicTypeString,
IsArray: false,
IsActive: true,
Validators: models.SchemaNodeValidator{
Required: true,
},
},
// ... más nodos del esquema
}
collection, err := client.CreateCollection("employees", "Empleados", schemaNodes)
// Obtener todas las colecciones
collections, err := client.GetCollections()
// Obtener una colección específica
collection, err := client.GetCollectionByCode("employees")// Crear un elemento
elementData := map[string]interface{}{
"name": map[string]interface{}{
"code": "emp_001",
"display": "emp_001",
},
"schemaInstance": map[string]interface{}{
"name": "Juan",
"last_name": "Pérez",
"salary": 8000,
"position": "Desarrollador",
},
}
element, err := client.CreateCollectionElement("employees", elementData)
// Obtener todos los elementos
elements, err := client.GetAllFromCollection("employees")
// Obtener elementos con paginación
params := map[string]string{
"page": "1",
"limit": "100",
"isActive": "true",
}
elements, err := client.GetAllFromCollectionPaginated("employees", params)
// Obtener un elemento específico
element, err := client.GetCollectionElement("employees", "element_id")
// Actualizar un elemento
updateData := map[string]interface{}{
"schemaInstance": map[string]interface{}{
"salary": 8500,
},
}
element, err := client.UpdateCollectionElement("employees", "element_id", updateData)
// Eliminar un elemento
err := client.DeleteCollectionElement("employees", "element_id")El SDK soporta los siguientes tipos básicos para los campos del esquema:
string: Textonumber: Númerosboolean: Valores booleanosdate: FechasCOTProperty: Referencias a otras coleccionesCOTUser: Referencias a usuariosfile: Archivos (document, image, video)link: Enlaces (embedded, internal, external)
Puedes encontrar ejemplos completos de uso en el directorio examples/:
collections/: Ejemplo de creación y gestión de colecciones
go/
├── internal/ (Código privado del SDK)
│ ├── core/ (Lógica principal y modelos)
│ └── http/ (Cliente HTTP y manejo de requests)
├── pkg/ (API pública)
│ └── cotalker/ (Cliente principal y tipos exportados)
└── examples/ (Ejemplos de uso)
- Go 1.22 o superior
- Variables de entorno configuradas (ver sección de Configuración)
go mod tidy