Not long ago I’ve mentioned Apixu in a post about handling errors. I found out about this service on DevForum, a development discussions platform I visit daily. What I like the most about Apixu is that they have various language libraries for consuming their API. Not great libraries and not all of them are complete, but they try to offer as many variations as they can for their service.
I noticed they were missing a Go library and I was missing an idea to learn new things on. And I just started writing the code until it got to a full package that covers all API methods with error handling, both JSON and XML formats, unit tested, versioned.
It has a simple interface that clearly defines the API methods with their input parameters and responses. And it can be extended for custom needs.
Some important things I learned from the process are simplicity, segregation and isolation, specific errors, memory management, and creating custom marshalers.
Check it out on Github. See documentation for the package and for the API.
In the end, they adopted my package among their official ones.