Rupture Platform Wiki

 

API

Page history last edited by Nick Gerakines 2 mos ago

Introduction

 

Table of Contents

  1. Getting Started
  2. Session API
  3. User API
  4. Event API
  5. Feed API
  6. Game API
  7. Game Library API
  8. Game Sessions API
  9. Game Objectives API
  10. Identity API
  11. Identity Provider API
  12. User Presence API
  13. Privacy API
  14. Protocol Buffers Message Definitions

 

Getting Started

 

Session API

 

API - Session

 

Create and destroy user sessions

 

Fetch Session

Resource: /sessions/<session_id>

Method: GET

Request Body: none

Required Fields: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Session Message

 

User API

Create and fetch users and users' networks

 

Fetch User By ID

Resource: /users/<user_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: User Message

 

Fetch Users By Property

Resource: /users?<param>

Accepted Params: gamername=<gamername>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Users Message

 

Fetch Followers of a User

Resource: /users/<user_id>/followers

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Users Message

 

Fetch Followed Users

Resource: /users/<user_id>/following

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Users Message

 

Follow User

Resource: /users/<user_id>/following

Method: POST

Request Body: User Message

Required Fields: id

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: none

Notes: The user specified in the url FOLLOWS the user defined by the User Message passed in the body.

 

Un-Follow User

Resource: /users/<user_id>/following/<user_id>

Method: DELETE

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: none

Notes: The first user specified in the URL un-follows the second user specified.

 

Update User

Resource: /users/<user_id>

Method: POST

Request Body: User Message

Required Fields: id

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: none

 

Fetch User Avatar

Resource: /users/<user_id>/avatar

Method: GET

Request Body: none

Request Headers: (all optional) X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Avatar Message

 

 

Event API

Create and fetch events

 

Create Event

Resource: /events

Method: POST

Request Body: Event Message

Required Fields: key, game_id, action, action_label, event_class, event_type, datasource_name, platform

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 201 (note: the next version of this API responds with 202 Accepted, since new events are enqueued for creation)

Response Body: Event Message

Notes: The event message passed to the API does not require an identity_id or user_id.  However, if identity_id is NOT included, then the identity_hints field IS required.  Identity hints is a list of strings, each one being one of the identity's values (ex: the identity hints for a Xbox Live account with the gamertag MyDogJesusBomb would be ["MyDogJesusBomb"]).

 

Fetch Event By ID

Resource: /events/<event_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Event Message

 

Fetch Events By Property

Resource: /events?<param>

Accepted Params: user=<user_id> | platform=<platform_name> | identity=<identity_id> | gamename=<gamename> | key=<key>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Events Message

 

Feed API

Get user feed data

 

Fetch User Feed

Resource: /feed/<user_id>?<param>

Accepted Params: type=<json|jsonp>, jsonp=<callback method>, l=<limit>, p=<page>

Method: GET

Request Body: none

Request Headers: (optional) X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: GameSessions_vFeed Message

Notes:

  1. This API returns view messages specifically built for easily building applications on top of a Rupture Feed.  These messages have a suffix of _vFeed and contain slightly different data than their non _vFeed counterpart.
  2. This resource can return json, jsonp, or protocolbuffers as a reply format.  The ?type= query parameter is used to control which reply the api gives back.  Excluding the ?type parameter will return protocol buffers.
  3. The ?l and ?p query parameters are used to control how many game sessions are returned and also specify an offset so a consumer can build pagination.  The ?l parameter restricts the amount of sessions returned with a default of 10 and the ?p parameter is how many pages into the recordset to return.  In order to do this ?p is multiplied by ?l.  The ?p parameter has a default of 0.  Calling the api with neither parameter set returns the most recent set of 10 records.  Calling with ?p=2&l=20 would return records 41-60.

 

Fetch Combined Feed of Followed Users

Resource: /feed/<user_id>/following?<param>

Accepted Params: type=<json|jsonp>, jsonp=<callback method>, l=<limit>, p=<page>

Method: GET

Request Body: none

Request Headers: (optional) X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: GameSessions_vFeed Message

Notes:

  1. This API returns view messages specifically built for easily building applications on top of a Rupture Feed.  These messages have a suffix of _vFeed and contain slightly different data than their non _vFeed counterpart.
  2. This resource can return json, jsonp, or protocolbuffers as a reply format.  The ?type= query parameter is used to control which reply the api gives back.  Excluding the ?type parameter will return protocol buffers.
  3. The ?l and ?p query parameters are used to control how many game sessions are returned and also specify an offset so a consumer can build pagination.  The ?l parameter restricts the amount of sessions returned with a default of 10 and the ?p parameter is how many pages into the recordset to return.  In order to do this ?p is multiplied by ?l.  The ?p parameter has a default of 0.  Calling the api with neither parameter set returns the most recent set of 10 records.  Calling with ?p=2&l=20 would return records 41-60.

 

Game API

Create and fetch games and fetch game objectives

 

Create Game

Resource: /games

Method: POST

Request Body: Game Message

Required Fields: name, platform, param

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 201

Response Body: Game Message

 

Fetch Game By ID

Resource: /games/<game_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Game Message

 

Fetch Games By Property

Resource: /games?<param>

Accepted Params: name=<gamename> | genre=<genre> | param=<param>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Games Message

 

Game Library API

Create and fetch game libraries

 

Create Game Library

Resource: /gamelibraries

Method: POST

Request Body: GameLibrary Message

Required Fields: user_id, game_id

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 201

Response Body: GameLibrary Message

 

Fetch Game Libraries By Property

Resource: /gamelibraries?<param>

Accepted Params: user=<user_id> | game=<game_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: GameLibraries Message

 

Game Sessions API

Create and fetch game sessions

 

Start Game Session

Resource: /gamesessions/<user_id>/start/<game_id>

Method: POST

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 201

Response Body: GameSession Message

 

Update Game Session

Resource: /gamesessions/<game_session_id>

Method: POST

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: GameSession Message

 

Fetch Game Sessions By Property

Resource: /gamesessions?<param>

Accepted Params: user=<user_id> | game=<game_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: GameSessions Message

 

Game Objectives API

Fetch game objectives and game objective types

 

Fetch Game Objective Types

Resource: /games/<game_id>/objectivetypes

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: GameObjectiveTypes Message

 

 

Fetch Game Objectives

Resource: /games/<game_id>/objectivetypes/<game_objective_type_id>/objectives

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: GameObjectives Message

 

 

Search Game Objectives

Resource: /objectives/?<param>

Accepted Params: event=<event_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: GameObjectives Message

 

Identity API

Create and fetch identities

 

Create Identity

Resource: /identities

Method: POST

Request Body: Identity Message

Required Fields: user_id, identity_provider_id, values, identity_string

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 201

Response Body: Identity Message

 

Fetch Identity By ID

Resource: /identities/<identity_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Identity Message

 

Fetch Identity Properties

Resource: /identities/<identity_id>/properties

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: IdentityProperties Message

 

Create Identity Property

Resource: /identities/<identity_id>/properties

Method: POST 

Request Body: IdentityProperty Message

Required Fields: identity_id 

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 201

Response Body: IdentityProperty Message

 

Fetch Identities By Property

Resource: /identities?<param>

Accepted Params: user=<user_id> | provider=<identity_provider_id> | providername=<provider_name> | identity=<identity_string>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Identities Message

 

Trigger Data Ingestion for an Identity

Resource: /identities/<identity_id>/update

Method: POST

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: none

 

Delete Identity

Resource: /identities/<identity_id>

Method: DELETE

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: none

 

Identity Provider API

Create and fetch identity providers

 

Create Identity Provider

Resource: /identityprovider/<identity_provider_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: IdentityProvider Message

 

Fetch Identity Providers By Property

Resource: /identityprovider/?<param>

Accepted Params: name=<identity_provider_name>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: IdentityProviders Message

 

User Presence API

Set and get user presence 

 

Get User Presence

Resource: /presence/<user_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Presence Message 

 

Get User Presence By Nucleus ID

Resource: /presence?nucleusid=<nucleus_id>

Method: GET

Request Body: none

Request Headers: none

Response Code: 200

Response Body: Presence Message

 

Update User Presence

Resource: /presence/<user_id>

Method: POST

Request Body: Presence Message

Required Fields: user_id

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: Presence Message 

 

Privacy API

Block/allow users and fetch block lists

 

Block User

Resource: /privacy/<user_id>/block/<target_user_id>

Method: POST

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: none

 

Un-Block User

Resource: /privacy/<user_id>/allow/<target_user_id>

Method: POST

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: none

 

Fetch Block List

Resource: /privacy/<user_id>

Method: GET

Request Body: none

Request Headers: X-Rupture-Application, X-Rupture-Request, X-Rupture-Signature, X-Rupture-Session

Response Code: 200

Response Body: BlockList Message 

 

Comments (0)

You don't have permission to comment on this page.