Files
ToneAPI_backend/reference/OpenAPI.yml
T

663 lines
18 KiB
YAML

openapi: 3.0.2
x-stoplight:
id: gr7tm5a03g740
info:
title: OpenAPI
version: '1.0'
servers:
- url: 'http://localhost:3000/v1'
tags:
- name: player
description: Everything about players
- name: server
description: Everything about servers
- name: weapon
description: Everything about weapons
- name: map
description: Everything about maps
paths:
/weapons/:
get:
summary: List Weapons
tags:
- weapon
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Weapon'
operationId: get-weapon-list
description: ''
put:
summary: ''
operationId: put-weapons
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WeaponID'
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/WeaponID'
security:
- server_token: []
/maps/:
get:
summary: List Maps
tags:
- map
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Map'
operationId: get-map-list
put:
summary: ''
operationId: put-maps
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MapID'
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/MapID'
security:
- server_token: []
requestBody:
content:
application/json:
schema:
type: string
example: mp_angel_city
/players:
get:
summary: List Players
tags:
- player
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Player'
operationId: get-player-list
'/players/{playerId}':
parameters:
- $ref: '#/components/parameters/playerId'
get:
summary: Get Player report
tags:
- player
responses:
'200':
$ref: '#/components/responses/Player-report'
'404':
description: User Not Found
operationId: get-player-report
description: Retrieve the information of the player with the matching id
/servers/:
get:
summary: Get Server list
tags:
- server
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Server'
operationId: get-server-list
post:
summary: ''
operationId: post-servers
responses:
'200':
description: OK
description: Register a new server
'/servers/{serverId}':
parameters:
- $ref: '#/components/parameters/serverId'
get:
summary: Get Server report
tags:
- server
operationId: get-server-report
responses:
'200':
$ref: '#/components/responses/Server-report'
'/server/{serverId}/players':
get:
summary: List Players for Server
tags:
- server
- player
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TopPlayers'
operationId: get-player-list-for-server
parameters:
- $ref: '#/components/parameters/serverId'
'/servers/{serverId}/kills':
post:
summary: Post kills
tags:
- server
operationId: post-kills
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: integer
'401':
description: Unauthorized
parameters: []
security:
- server_token: []
description: Allows a Northstar server to record kills on the database
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Kill'
description: ''
parameters:
- $ref: '#/components/parameters/serverId'
'/servers/{serverId}/weapons':
get:
summary: Get Weapon report for server
tags:
- server
- weapon
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PrefferedWeapon'
operationId: get-weapons-report-for-server
parameters: []
x-internal: false
parameters:
- $ref: '#/components/parameters/serverId'
'/servers/{serverId}/players/{playerId}':
parameters:
- $ref: '#/components/parameters/playerId'
- $ref: '#/components/parameters/serverId'
get:
summary: Get Player report for Server
tags:
- server
- player
responses:
'200':
$ref: '#/components/responses/Player-server-report'
'404':
description: Not Found
operationId: get-player-on-server
components:
schemas:
Player:
title: Player
x-stoplight:
id: be41fcacb2693
type: object
properties:
id:
$ref: '#/components/schemas/PlayerID'
name:
type: string
example: Legonzaur
opt-out:
type: boolean
default: false
description: 'If set to true, kills and deaths about this user won''t be sent to the database'
hide_TOS:
type: boolean
default: false
description: 'If set to true, TOS will be hidden when player joins a server'
required:
- id
Weapon:
title: Weapon
x-stoplight:
id: 7zc6t20eh3pcc
type: object
properties:
id:
$ref: '#/components/schemas/WeaponID'
name:
type: string
example: Kraber
description:
type: string
image:
type: string
format: uri
example: 'https://static.wikia.nocookie.net/titanfall_gamepedia/images/8/8b/Icon_kraber.png'
required:
- id
Map:
title: Map
x-stoplight:
id: hoh2m6pr6gli7
type: object
properties:
id:
$ref: '#/components/schemas/MapID'
name:
type: string
example: Angel City
description:
type: string
image:
type: string
format: uri
example: 'https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg'
required:
- id
Server:
title: Server
x-stoplight:
id: hjfwmi2ae419o
type: object
properties:
id:
type: integer
example: '1'
name:
type: string
example: fvnknoots 7v7
description:
type: string
Kill:
title: Kill
x-stoplight:
id: a9q2tvsts3z32
type: object
properties:
id:
type: integer
readOnly: true
server:
type: string
readOnly: true
tone_version:
type: string
match_id:
type: string
game_mode:
type: string
map:
type: string
unix_time:
type: string
format: date-time
game_time:
type: string
format: time
player_count:
type: integer
attacker_name:
type: string
attacker_id:
type: integer
attacker_current_weapon:
type: string
attacker_current_weapon_mods:
type: string
attacker_weapon_1:
type: string
attacker_weapon_1_mods:
type: string
attacker_weapon_2:
type: string
attacker_weapon_2_mods:
type: string
attacker_weapon_3:
type: string
attacker_weapon_3_mods:
type: string
attacker_offhand_weapon_1:
type: string
attacker_offhand_weapon_2:
type: string
victim_name:
type: string
victim_id:
type: integer
victim_current_weapon:
type: string
victim_current_weapon_mods:
type: string
victim_weapon_1:
type: string
victim_weapon_1_mods:
type: string
victim_weapon_2:
type: string
victim_weapon_2_mods:
type: string
victim_weapon_3:
type: string
victim_weapon_3_mods:
type: string
victim_offhand_weapon_1:
type: string
victim_offhand_weapon_2:
type: string
cause_of_death:
type: string
distance:
type: integer
required:
- cause_of_death
description: ''
PlayerID:
title: PlayerId
x-stoplight:
id: 9icavmq5bgsqp
type: integer
WeaponID:
title: WeaponID
x-stoplight:
id: p92aomkxku2po
type: string
maxLength: 50
MapID:
title: MapID
x-stoplight:
id: zoazw8eoi7qwr
type: string
maxLength: 50
PrefferredServer:
title: PrefferredServer
x-stoplight:
id: xok1i1668gx6o
type: object
properties:
server:
$ref: '#/components/schemas/Server'
killCount:
type: integer
example: 4988
deathCount:
type: integer
example: 4671
PrefferedWeapon:
title: PrefferedWeapon
x-stoplight:
id: b52mxxdsbv1wx
type: object
properties:
weapon:
$ref: '#/components/schemas/Weapon'
killCount:
type: integer
deathCount:
type: integer
PrefferedMap:
title: PrefferedMap
x-stoplight:
id: 17kjfi5wu6f4h
type: object
properties:
map:
$ref: '#/components/schemas/Map'
killCount:
type: integer
deathCount:
type: integer
TopPlayers:
title: TopPlayers
x-stoplight:
id: rsl4jqpvwunah
type: object
properties:
player:
$ref: '#/components/schemas/Player'
kill_count:
type: integer
death_count:
type: integer
securitySchemes:
server_token:
name: API Key
type: apiKey
in: header
description: ''
parameters:
serverId:
name: serverId
in: path
required: true
schema:
type: string
playerId:
name: playerId
in: path
required: true
schema:
type: string
responses:
Server-report:
description: OK
content:
application/json:
schema:
type: object
properties:
server:
$ref: '#/components/schemas/Server'
total_kills:
type: integer
first_record:
type: string
format: date-time
last_record:
type: string
format: date-time
most_used_weapons:
type: array
items:
$ref: '#/components/schemas/PrefferedWeapon'
preffered_maps:
type: array
items:
$ref: '#/components/schemas/PrefferedMap'
top_players:
type: array
maxItems: 5
items:
$ref: '#/components/schemas/TopPlayers'
Player-server-report:
description: OK
content:
application/json:
schema:
type: object
properties:
player:
$ref: '#/components/schemas/Player'
server:
$ref: '#/components/schemas/Server'
total_kills:
type: integer
description: Number of kills of the user in this server
total_deaths:
type: integer
description: Number of deaths of the user in this server
first_record:
type: string
format: date-time
last_record:
type: string
format: date-time
most_used_weapons:
type: array
maxItems: 5
items:
$ref: '#/components/schemas/PrefferedWeapon'
preferred_maps:
type: array
maxItems: 5
items:
$ref: '#/components/schemas/PrefferedMap'
furthest_kill_distance:
type: number
average_kill_distance:
type: number
examples:
Example 1:
value:
player:
id: 0
name: Legonzaur
opt-out: false
hide_TOS: false
server:
id: '1'
name: fvnknoots 7v7
total_kills: 9865
total_deaths: 9954
first_record: '2019-08-24T14:15:22Z'
last_record: '2019-08-24T14:15:22Z'
most_used_weapons:
- weapon:
id: 0
internal: mp_weapon_sniper
name: Kraber
description: string
image: 'https://static.wikia.nocookie.net/titanfall_gamepedia/images/8/8b/Icon_kraber.png'
killCount: 0
deathCount: 0
preferred_maps:
- map:
id: 0
internal: mp_angel_city
name: Angel City
description: string
image: 'https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg'
killCount: 0
deathCount: 0
furthest_kill_distance: 0
average_kill_distance: 0
Player-report:
description: OK
content:
application/json:
schema:
type: object
properties:
player:
$ref: '#/components/schemas/Player'
preferred_servers:
type: array
maxItems: 5
items:
$ref: '#/components/schemas/PrefferredServer'
total_kills:
type: integer
description: Number of kills of the user in the entire database
total_deaths:
type: integer
description: Number of kills of the user in the entire database
first_record:
type: string
format: date-time
last_record:
type: string
format: date-time
most_used_weapons:
type: array
maxItems: 5
items:
$ref: '#/components/schemas/PrefferedWeapon'
preferred_maps:
type: array
maxItems: 5
items:
$ref: '#/components/schemas/PrefferedMap'
furthest_kill_distance:
type: number
average_kill_distance:
type: number
examples:
Example 1:
value:
player:
id: 0
name: Legonzaur
opt-out: false
hide_TOS: false
preferred_servers:
- server:
id: '1'
name: fvnknoots 7v7
killCount: 4988
deathCount: 4671
total_kills: 0
total_deaths: 0
first_record: '2019-08-24T14:15:22Z'
last_record: '2019-08-24T14:15:22Z'
most_used_weapons:
- weapon:
id: 0
internal: mp_weapon_sniper
name: Kraber
description: string
image: 'https://static.wikia.nocookie.net/titanfall_gamepedia/images/8/8b/Icon_kraber.png'
killCount: 0
deathCount: 0
preferred_maps:
- map:
id: 0
internal: mp_angel_city
name: Angel City
description: string
image: 'https://media.contentapi.ea.com/content/dam/eacom/en-us/common/articles-tf2-welcome-header.jpg.adapt.320w.jpg'
killCount: 0
deathCount: 0
furthest_kill_distance: 0
average_kill_distance: 0
examples: {}