Files
NBA_Go/docs/swagger.yaml
T
2025-05-12 21:06:03 -05:00

326 lines
7.3 KiB
YAML

basePath: /
definitions:
controllers.AdvancedStatsResponse:
properties:
data:
items:
$ref: '#/definitions/models.PlayerAdvancedStat'
type: array
pagination:
properties:
page:
type: integer
pageSize:
type: integer
pages:
type: integer
total:
type: integer
type: object
type: object
models.PlayerAdvancedStat:
properties:
age:
type: integer
assistPercent:
type: number
blockPercent:
type: number
box:
type: number
defensiveBox:
type: number
defensiveRBPercent:
type: number
defensiveWS:
type: number
ftr:
type: number
games:
type: integer
id:
type: integer
isPlayoff:
type: boolean
minutesPlayed:
type: integer
offensiveBox:
type: number
offensiveRBPercent:
type: number
offensiveWS:
type: number
per:
type: number
playerId:
type: string
playerName:
type: string
position:
type: string
season:
type: integer
stealPercent:
type: number
team:
type: string
threePAR:
type: number
totalRBPercent:
type: number
tsPercent:
type: number
turnoverPercent:
type: number
usagePercent:
type: number
vorp:
type: number
winShares:
type: number
winSharesPer:
type: number
type: object
models.PlayerShotChart:
properties:
date:
type: string
distanceFt:
type: integer
id:
type: integer
lead:
type: boolean
left:
type: integer
opponent:
type: string
opponentTeamScore:
type: integer
playerId:
type: string
playerName:
type: string
qtr:
type: string
result:
type: boolean
season:
type: integer
shotType:
type: string
team:
type: string
teamScore:
type: integer
timeRemaining:
type: string
top:
type: integer
type: object
info:
contact: {}
description: Stats service with API-key auth
title: NBA_Go API
version: "1.0"
paths:
/api/playeradvancedstats:
get:
consumes:
- application/json
description: Returns filtered and paginated player advanced stats
parameters:
- description: Season (e.g., 2025)
in: query
name: season
type: integer
- description: Team abbreviation (e.g., MIL)
in: query
name: team
type: string
- description: Player ID (e.g., greenaj01)
in: query
name: playerId
type: string
- default: 1
description: Page number
in: query
name: page
type: integer
- default: 20
description: Page size
in: query
name: pageSize
type: integer
- default: winShares
description: Field to sort by
in: query
name: sortBy
type: string
- default: false
description: Sort ascending
in: query
name: ascending
type: boolean
- description: Whether playoffs?
in: query
name: isPlayoff
type: boolean
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.AdvancedStatsResponse'
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
security:
- ApiKeyAuth: []
summary: Get player advanced stats
tags:
- PlayerStats
/api/playershotchart:
get:
consumes:
- application/json
description: Returns shot-chart points, optionally filtered by playerId and/or
season
parameters:
- description: Player ID (e.g., hardeja01)
in: query
name: playerId
type: string
- description: Season (e.g., 2023)
in: query
name: season
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/models.PlayerShotChart'
type: array
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
security:
- ApiKeyAuth: []
summary: Get shot-chart data
tags:
- PlayerShotChart
/api/playershotchart/fetch:
get:
consumes:
- application/json
description: Imports shot-chart data for the given playerId and stores/updates
in DB
parameters:
- description: Player ID (e.g., hardeja01)
in: query
name: playerId
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties:
type: string
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Fetch a single player's shot-chart data from external API
tags:
- PlayerShotChart
/api/playertotals:
get:
consumes:
- application/json
description: Filter and paginate player totals
parameters:
- description: Season (e.g. 2000)
in: query
name: season
type: integer
- description: Team abbreviation (e.g. LAL)
in: query
name: team
type: string
- description: Player ID (e.g. greenac01)
in: query
name: playerId
type: string
- default: 1
description: Page number
in: query
name: page
type: integer
- default: 20
description: Page size
in: query
name: pageSize
type: integer
- description: Field to sort by (e.g. points, assists)
in: query
name: sortBy
type: string
- description: Sort ascending (default false)
in: query
name: ascending
type: boolean
- description: Whether the stats are for playoffs
in: query
name: isPlayoff
type: boolean
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
security:
- ApiKeyAuth: []
summary: Get player total stats
tags:
- PlayerTotals
schemes:
- http
- https
securityDefinitions:
ApiKeyAuth:
in: header
name: X-API-Key
type: apiKey
swagger: "2.0"