Files
go-onlyoffice/README.md
T

2.0 KiB

go-onlyoffice

Go client library for the OnlyOffice Project Management API.

Features

  • Token-based authentication with automatic renewal
  • Project CRUD operations (create, read, update, delete)
  • Task management (create, update, list, filter)
  • Milestone management
  • User listing
  • Query parameter serialization via struct tags

Installation

go get github.com/eslider/go-onlyoffice

Usage

package main

import (
    "fmt"
    "log"

    onlyoffice "github.com/eslider/go-onlyoffice"
)

func main() {
    client := onlyoffice.NewClient(onlyoffice.Credentials{
        Url:      "https://your-onlyoffice.example.com",
        User:     "admin@example.com",
        Password: "your-password",
    })

    // List projects
    projects, err := client.GetProjects()
    if err != nil {
        log.Fatal(err)
    }
    for _, p := range projects {
        fmt.Printf("Project: %s (ID: %d)\n", *p.Title, *p.ID)
    }
}

Or load credentials from environment variables:

client := onlyoffice.NewClient(onlyoffice.GetEnvironmentCredentials())

Environment Variables

Variable Description
ONLYOFFICE_URL OnlyOffice instance URL
ONLYOFFICE_USER Login email or username
ONLYOFFICE_PASS Password

API Reference

Client

  • NewClient(credentials) - Create a new client
  • GetEnvironmentCredentials() - Load credentials from env vars
  • Auth(credentials) - Authenticate and get token
  • Query(request, result) - Execute an API request

Projects

  • GetProjects() - List all projects
  • CreateProject(req) - Create a new project
  • UpdateProject(req) - Update a project
  • DeleteProject(id) - Delete a project
  • GetProjectMilestones(project) - Get milestones for a project

Tasks

  • GetTasks(req) - List tasks with filtering
  • CreateProjectTask(req) - Create a new task
  • UpdateProjectTask(req) - Update a task

Users

  • GetUsers() - List all users

License

MIT