gogeek

module
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2025 License: MIT

README

GoGeek Logo

GoGeek: Go Module for the BoardGameGeek API

Go Reference Go Report Card codecov

GoGeek is a lightweight, easy-to-use Go module designed to streamline interactions with the BoardGameGeek API (XML API2).

Key Features

  • 🔄 Simple Request Handling: GoGeek abstracts the BGG API request process, allowing you to focus on utilising the data rather than managing HTTP requests.
  • 📄 Data Parsing: Automatically converts and normalises XML responses from the BGG API into Go structs, so you can work with structured data effortlessly.
  • ⚠️ Error Handling: Robust error handling for common issues like network errors, rate limiting, queued requests and unexpected response formats.

Setup

To setup GoGeek, use the following go get command:

go get github.com/kkjdaniel/gogeek

Usage

Getting started with GoGeek is easy. Here’s a quick example to fetch details about specific board games:

package main

import (
	"fmt"
	"log"

	"github.com/kkjdaniel/gogeek/thing"
)

func main() {
	games, err := thing.Query([]int{13, 12, 3})
	if err != nil {
		log.Fatal(err)
	}

	for _, game := range games.Items {
		fmt.Printf("Name: %s\nYear Published: %d\n", game.Name[0].Value, game.YearPublished.Value)
	}
}
Name: CATAN
Year Published: 1995
Name: Ra
Year Published: 1999
Name: Samurai
Year Published: 1998

The thing query allows you to fetch details about a specific or multiple board games by BGG ID.

Note: There is a query limit of 20 IDs per query due to restrictions of the BGG API. If you wish to fetch multiple games you will need to batch your requests.

Documentation

For the full documentation please see the GoDoc here. Details on how to use each query function as well as the interfaces for each of the APIs can be found within their respective packages.

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue on GitHub to help improve GoGeek.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL