I couldn’t find any obvious Go package for WaniKani’s API, so I made one over the holidays. It’s been in a state of flux for the last few weeks, but now stabilized enough to be ready for some external use. Here it is on GitHub along with documentation:
Some features:
- Pagination helpers.
- Pluggable logging.
- Conditional requests (
If-Modified-Since
andIf-None-Match
). - Configurable automatic retries with exponential backoff/jitter on network errors.
- Go
context
support. - No non-test dependencies aside from Go’s standard library.
It was a pleasure in general working with WaniKani’s API, which is very well designed. I blogged a little more about the implementation here.
I don’t expect that very many people are going to have an immediate use for this, but hopefully it helps someone in the future. Personally, I’m writing a bot that periodically emails me my worst-performing reviews.