Skip to content

madreflection/MadReflection.BungieNetApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MadReflection.BungieNetApi

This is a REST client for Bungie.net's API for Destiny.

The primary product is a pair of libraries, MadReflection.BungieNetApi.Entities and MadReflection.BungieNetApi.Client. The LibraryGenerator project generates code in those projects using the Open API 3.0 specification.

Getting Started

Install NuGet Package

There are two packages available on nuget.org. The Client package depends on the Entities package so installing the former will also install the latter.

Install-Package MadReflection.BungieNetApi.Client

Or you can install just the Entities package.

Install-Package MadReflection.BungieNetApi.Entities

How To Use

If you're using another container, check its documentation for how to register a singleton.

Design

The Destiny API is divided into logical areas. Most clients will prefix the endpoint name with the area, e.g. Destiny2GetManifest. This library exposes each area as an interface provided by a property on the client's main interface. Because the interfaces are explicity implemented by the client object, the property is essentially a cast (which can be inlined by the JIT).

Technically, the following are equivalent:

client.Destiny2.GetManifest(...)

((IDestiny2Client)client).GetManifest(...)

Caution

I do not follow Semantic Versioning on this project.

Due to the potential that the Open API description will introduce something that will "break" the generator or that a change needed to support a change in the description will require refactoring, I do not promise binary (ABI) compatibility from version to version. Always recompile and test when upgrading to a newer version.

Disclaimers

I am not affiliated with or employed by Bungie, nor have I ever been. I created this library for fun, for my own projects which are no longer active. I continue to maintain it because I like that it's being used by others in their own projects.

I make no committment to maintaining this for any specific amount of time or that I will support any given feature.

A significant part of this library is generated from the published Open API 3.0 specification of the Destiny API provided Bungie. I am not responsible for the identifier names and documentation text taken therefrom.