Add 'csgowtf_api.yaml'
This commit is contained in:
606
csgowtf_api.yaml
Normal file
606
csgowtf_api.yaml
Normal file
@@ -0,0 +1,606 @@
|
||||
openapi: 3.0.0
|
||||
servers:
|
||||
# Added by API Auto Mocking Plugin
|
||||
- description: SwaggerHub API Auto Mocking
|
||||
url: https://virtserver.swaggerhub.com/CSGOWTF/csgowtfd/1.0.0
|
||||
- description: csgoWTF API Endpoint
|
||||
url: https://api.csgow.tf
|
||||
info:
|
||||
version: "1.0.0"
|
||||
title: csgoWTF API
|
||||
contact:
|
||||
email: api@csgow.tf
|
||||
license:
|
||||
name: GPLv3
|
||||
url: 'https://www.gnu.org/licenses/gpl-3.0.html'
|
||||
tags:
|
||||
- name: matches
|
||||
description: All calls related to matches
|
||||
- name: players
|
||||
description: All calls related to players
|
||||
- name: meta
|
||||
description: All calls not related to players or matches
|
||||
paths:
|
||||
/match/{id}:
|
||||
get:
|
||||
tags:
|
||||
- matches
|
||||
summary: gets match by MatchID
|
||||
operationId: getMatch
|
||||
description: |
|
||||
Get match by matchID
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
description: match id
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: match with id
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Match'
|
||||
- type: object
|
||||
properties:
|
||||
stats:
|
||||
type: array
|
||||
maxItems: 10
|
||||
items:
|
||||
$ref: '#/components/schemas/Stats'
|
||||
'400':
|
||||
description: bad input parameter
|
||||
'404':
|
||||
description: match not found
|
||||
'500':
|
||||
description: internal server errror
|
||||
/match/{id}/chat:
|
||||
get:
|
||||
tags:
|
||||
- matches
|
||||
summary: gets match-chat by MatchID
|
||||
operationId: getMatchChat
|
||||
description: |
|
||||
Get match-chat by MatchID
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
description: match id
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- in: query
|
||||
name: translated
|
||||
schema:
|
||||
type: number
|
||||
enum: [0, 1]
|
||||
required: false
|
||||
responses:
|
||||
'200':
|
||||
description: match with id
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/MatchChat'
|
||||
'400':
|
||||
description: bad input parameter
|
||||
'404':
|
||||
description: match not found
|
||||
'500':
|
||||
description: internal server error
|
||||
/match/{id}/rounds:
|
||||
get:
|
||||
tags:
|
||||
- matches
|
||||
summary: gets match-rounds by MatchID
|
||||
operationId: getMatchRounds
|
||||
description: |
|
||||
Get match-rounds by MatchID
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
description: match id
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: match with id
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/MatchRounds'
|
||||
'400':
|
||||
description: bad input parameter
|
||||
'404':
|
||||
description: match not found
|
||||
'500':
|
||||
description: internal server error
|
||||
/match/{id}/weapons:
|
||||
get:
|
||||
tags:
|
||||
- matches
|
||||
summary: gets match-weapons by MatchID
|
||||
operationId: getMatchWeapons
|
||||
description: |
|
||||
Get match-weapons by MatchID
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
description: match id
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: match with id
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/MatchWeapons'
|
||||
'400':
|
||||
description: bad input parameter
|
||||
'404':
|
||||
description: match not found
|
||||
'500':
|
||||
description: internal server error
|
||||
/matches:
|
||||
get:
|
||||
tags:
|
||||
- matches
|
||||
summary: gets matches
|
||||
operationId: getMatches
|
||||
description: |
|
||||
Get last 10 matches
|
||||
parameters:
|
||||
- in: query
|
||||
name: after
|
||||
schema:
|
||||
type: integer
|
||||
format: int64
|
||||
required: false
|
||||
description: Unix time after which games are loaded
|
||||
responses:
|
||||
'200':
|
||||
description: match with id
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Match'
|
||||
'400':
|
||||
description: bad input parameter
|
||||
'500':
|
||||
description: internal server error
|
||||
/player/{id}:
|
||||
get:
|
||||
tags:
|
||||
- players
|
||||
summary: gets player by steamID64
|
||||
operationId: getPlayer
|
||||
description: |
|
||||
Get player by steamid64
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
description: player steamid64
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- in: query
|
||||
name: after
|
||||
schema:
|
||||
type: integer
|
||||
format: int64
|
||||
required: false
|
||||
description: Unix time after which games are loaded
|
||||
responses:
|
||||
'200':
|
||||
description: player with matches and stats
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Player'
|
||||
'400':
|
||||
description: bad input parameter
|
||||
'404':
|
||||
description: player not found
|
||||
'500':
|
||||
description: unable to get player
|
||||
/player/{id}/meta:
|
||||
get:
|
||||
tags:
|
||||
- players
|
||||
summary: gets player-meta by steamID64
|
||||
operationId: getPlayerMeta
|
||||
description: |
|
||||
Get player-meta by steamid64
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
description: player steamid64
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- in: query
|
||||
name: limit
|
||||
schema:
|
||||
type: integer
|
||||
minimum: 1
|
||||
maximum: 10
|
||||
required: true
|
||||
description: Number of returned meta-stats
|
||||
responses:
|
||||
'200':
|
||||
description: player meta stats
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PlayerMeta'
|
||||
'400':
|
||||
description: bad input parameter
|
||||
'404':
|
||||
description: player not found
|
||||
'500':
|
||||
description: unable to get player meta-stats
|
||||
/player/{id}/track:
|
||||
post:
|
||||
tags:
|
||||
- players
|
||||
summary: tracks player with steamid64 by authCode
|
||||
operationId: postPlayerTrack
|
||||
description: |
|
||||
Post player steamid64, authcode (and sharecode) to track games
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
description: player steamid64
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- in: query
|
||||
name: authcode
|
||||
description: player authcode
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{5}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}$'
|
||||
- in: query
|
||||
name: sharecode
|
||||
description: player sharecode
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^CSGO(?:-?[ABCDEFGHJKLMNOPQRSTUVWXYZabcdefhijkmnopqrstuvwxyz23456789]{5}){5}$'
|
||||
responses:
|
||||
'202':
|
||||
description: Tracking successful
|
||||
'400':
|
||||
description: Invalid arguments
|
||||
'401':
|
||||
description: Authcode is invalid
|
||||
'404':
|
||||
description: Player not found
|
||||
'412':
|
||||
description: Sharecode is invalid or missing
|
||||
'500':
|
||||
description: Internal server error
|
||||
'503':
|
||||
description: Steam API not available
|
||||
delete:
|
||||
tags:
|
||||
- players
|
||||
summary: deletes tracked player with steamid64 by authCode
|
||||
operationId: deletePlayerTrack
|
||||
description: |
|
||||
Delete player steamid64 and authcode to delete tracked status
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
description: player steamid64
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- in: query
|
||||
name: authcode
|
||||
description: player authcode
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{5}-[ABCDEFGHJKLMNOPQRSTUVWXYZ23456789]{4}$'
|
||||
responses:
|
||||
'200':
|
||||
description: Delete successful
|
||||
'400':
|
||||
description: Invalid arguments
|
||||
'401':
|
||||
description: Authcode is invalid
|
||||
'404':
|
||||
description: Player not found
|
||||
'500':
|
||||
description: Internal server error
|
||||
'503':
|
||||
description: Steam API not available
|
||||
components:
|
||||
schemas:
|
||||
Match:
|
||||
type: object
|
||||
properties:
|
||||
match_id:
|
||||
type: string
|
||||
share_code:
|
||||
type: string
|
||||
map:
|
||||
type: string
|
||||
date:
|
||||
type: integer
|
||||
score:
|
||||
type: array
|
||||
items:
|
||||
type: integer
|
||||
maxItems: 2
|
||||
minItems: 2
|
||||
duration:
|
||||
type: integer
|
||||
match_result:
|
||||
type: integer
|
||||
enum: [0, 1, 2]
|
||||
max_rounds:
|
||||
type: integer
|
||||
parsed:
|
||||
type: boolean
|
||||
replay_url:
|
||||
type: string
|
||||
vac:
|
||||
type: boolean
|
||||
game_ban:
|
||||
type: boolean
|
||||
avg_rank:
|
||||
type: number
|
||||
tick_rate:
|
||||
type: number
|
||||
required:
|
||||
- match_id
|
||||
- map
|
||||
- date
|
||||
- score
|
||||
- duration
|
||||
- match_result
|
||||
- parsed
|
||||
- vac
|
||||
- game_ban
|
||||
MatchChat:
|
||||
type: object
|
||||
properties:
|
||||
message:
|
||||
type: string
|
||||
all_chat:
|
||||
type: boolean
|
||||
tick:
|
||||
type: integer
|
||||
translated_from:
|
||||
type: string
|
||||
translated_to:
|
||||
type: string
|
||||
required:
|
||||
- message
|
||||
- all_chat
|
||||
- tick
|
||||
MatchRounds:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: integer
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
MatchWeapons:
|
||||
type: object
|
||||
properties:
|
||||
equipment_map:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: string
|
||||
stats:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: array
|
||||
items:
|
||||
type: integer
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
spray:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: array
|
||||
items:
|
||||
type: number
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
Player:
|
||||
type: object
|
||||
properties:
|
||||
steamid64:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
avatar:
|
||||
type: string
|
||||
vac:
|
||||
type: boolean
|
||||
vac_date:
|
||||
type: integer
|
||||
format: int64
|
||||
game_ban:
|
||||
type: boolean
|
||||
game_ban_date:
|
||||
type: integer
|
||||
format: int64
|
||||
tracked:
|
||||
type: boolean
|
||||
vanity_url:
|
||||
type: string
|
||||
match_stats:
|
||||
type: object
|
||||
properties:
|
||||
win:
|
||||
type: integer
|
||||
loss:
|
||||
type: integer
|
||||
tie:
|
||||
type: integer
|
||||
matches:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Match'
|
||||
required:
|
||||
- steamid64
|
||||
- vac
|
||||
- game_ban
|
||||
- tracked
|
||||
PlayerMeta:
|
||||
type: object
|
||||
properties:
|
||||
player:
|
||||
$ref: '#/components/schemas/Player'
|
||||
best_mates:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PlayerMate'
|
||||
most_mates:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PlayerMate'
|
||||
eq_map:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: string
|
||||
weapon_dmg:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
eq:
|
||||
type: integer
|
||||
dmg:
|
||||
type: integer
|
||||
win_maps:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: number
|
||||
tie_maps:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: number
|
||||
total_maps:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: integer
|
||||
required:
|
||||
- player
|
||||
PlayerMate:
|
||||
type: object
|
||||
properties:
|
||||
player:
|
||||
$ref: '#/components/schemas/Player'
|
||||
win_rate:
|
||||
type: number
|
||||
tie_rate:
|
||||
type: number
|
||||
total:
|
||||
type: integer
|
||||
required:
|
||||
- player
|
||||
Stats:
|
||||
type: object
|
||||
properties:
|
||||
team_id:
|
||||
type: integer
|
||||
kills:
|
||||
type: integer
|
||||
deaths:
|
||||
type: integer
|
||||
assists:
|
||||
type: integer
|
||||
headshots:
|
||||
type: integer
|
||||
mvp:
|
||||
type: integer
|
||||
score:
|
||||
type: integer
|
||||
crosshair:
|
||||
type: string
|
||||
color:
|
||||
type: string
|
||||
player:
|
||||
$ref: '#/components/schemas/Player'
|
||||
rank:
|
||||
type: object
|
||||
properties:
|
||||
old:
|
||||
type: integer
|
||||
new:
|
||||
type: integer
|
||||
multi_kills:
|
||||
type: object
|
||||
properties:
|
||||
duo:
|
||||
type: integer
|
||||
triple:
|
||||
type: integer
|
||||
quad:
|
||||
type: integer
|
||||
pent:
|
||||
type: integer
|
||||
dmg:
|
||||
type: object
|
||||
properties:
|
||||
ememy:
|
||||
type: integer
|
||||
team:
|
||||
type: integer
|
||||
flash:
|
||||
type: object
|
||||
properties:
|
||||
duration:
|
||||
type: object
|
||||
properties:
|
||||
self:
|
||||
type: number
|
||||
team:
|
||||
type: number
|
||||
enemy:
|
||||
type: number
|
||||
total:
|
||||
type: object
|
||||
properties:
|
||||
self:
|
||||
type: integer
|
||||
team:
|
||||
type: integer
|
||||
enemy:
|
||||
type: integer
|
||||
required:
|
||||
- team_id
|
||||
- kills
|
||||
- deaths
|
||||
- assists
|
||||
- headshot
|
||||
- mvp
|
||||
- score
|
Reference in New Issue
Block a user