A new REST API client written in Go

Hi all!

During some downtime I decided to write a Go package for interacting with Icinga’s HTTP API: olowe.co/icinga. I’ve tried hard to make its interface familiar to Go programmers.

It’s a work-in-progress; there’s no stable version yet and not all features of Icinga’s API are implemented.

I’m very open to feedback, suggestions… anything really :slight_smile:

Getting Started

See the package overview godoc for examples.

Why?

I looked at a couple of open source projects where this package may fit in: Meerkat and the Icinga2 terraform provider.

Meerkat’s interaction with an Icinga server is tightly coupled to both its caching implementation and its own HTTP server. This makes it difficult to troubleshoot caching problems (see issue 63)

The icinga2 terraform provider uses the package github.com/lrsmith/go-icinga2-api/iapi. As I read the source code I felt I wasn’t reading idiomatic Go as detailed in documents like Effective Go.

Contributing

The code is hosted on Sourcehut as an experiment, which means email instead of pull/merge requests like on GitHub/Gitlab. Open to feedback on this experiment, too :slight_smile:

Thanks

Thank you to the Icinga project and the community! Hopefully this package is useful or inspires someone to write their own thing for Icinga.