62af9a2fc1d76c3b1f11d0811d45baf9b71025a9
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 clientGetEnvironmentCredentials()- Load credentials from env varsAuth(credentials)- Authenticate and get tokenQuery(request, result)- Execute an API request
Projects
GetProjects()- List all projectsCreateProject(req)- Create a new projectUpdateProject(req)- Update a projectDeleteProject(id)- Delete a projectGetProjectMilestones(project)- Get milestones for a project
Tasks
GetTasks(req)- List tasks with filteringCreateProjectTask(req)- Create a new taskUpdateProjectTask(req)- Update a task
Users
GetUsers()- List all users