All checks were successful
Quality Check / Validate OAS (push) Successful in 29s
Quality Check / Testing (push) Successful in 46s
Quality Check / Linting (push) Successful in 55s
Quality Check / Static Analysis (push) Successful in 56s
Quality Check / Validate OAS (pull_request) Successful in 30s
Quality Check / Testing (pull_request) Successful in 47s
Quality Check / Static Analysis (pull_request) Successful in 58s
Quality Check / Linting (pull_request) Successful in 1m10s
150 lines
No EOL
4.1 KiB
YAML
150 lines
No EOL
4.1 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: Tower Defence Server
|
|
description: An API for talking to the Tower Defence Server
|
|
version: 0.0.1
|
|
servers:
|
|
- url: /api/v1
|
|
- url: http://localhost:8080/api/v1
|
|
security:
|
|
- JWTAuth: []
|
|
|
|
components:
|
|
securitySchemes:
|
|
JWTAuth:
|
|
type: http
|
|
scheme: bearer
|
|
bearerFormat: JWT
|
|
schemas:
|
|
#############################################
|
|
# UUID #
|
|
#############################################
|
|
UUID:
|
|
description: Unique identifier compatible with [RFC9562](https://datatracker.ietf.org/doc/html/rfc9562)
|
|
type: string
|
|
format: uuid
|
|
example: f0981749-f550-46cd-b9ce-b6ca7cd0251f
|
|
#############################################
|
|
# PlayerRegistrationData #
|
|
#############################################
|
|
PlayerRegistrationData:
|
|
description: Data needed to create a new player
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
required:
|
|
- username
|
|
- password
|
|
#############################################
|
|
# AdminAuthInfo #
|
|
#############################################
|
|
ServerHealth:
|
|
type: object
|
|
properties:
|
|
okay:
|
|
type: boolean
|
|
required:
|
|
- okay
|
|
#############################################
|
|
# AdminAuthInfo #
|
|
#############################################
|
|
AdminAuthInfo:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
required:
|
|
- username
|
|
responses:
|
|
201PlayerCreated:
|
|
description: "201 - Player Created"
|
|
401Unauthorized:
|
|
description: "401 - Unauthorized"
|
|
404NotFound:
|
|
description: "Not Found"
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
409UsernameTaken:
|
|
description: "409 - Username Taken"
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
409Conflict:
|
|
description: "409 - Conflict"
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
500InternalError:
|
|
description: "500 - Internal Server Error"
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
503ServiceUnavailable:
|
|
description: "503 - Service Unavailable"
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
paths:
|
|
/player/register:
|
|
post:
|
|
operationId: "PlayerRegister"
|
|
tags:
|
|
- server
|
|
description: "Endpoint for registering a new Player"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PlayerRegistrationData"
|
|
responses:
|
|
201:
|
|
$ref: "#/components/responses/201PlayerCreated"
|
|
409:
|
|
$ref: "#/components/responses/409UsernameTaken"
|
|
500:
|
|
$ref: "#/components/responses/500InternalError"
|
|
/server/health:
|
|
get:
|
|
operationId: "ServerGetHealthcheck"
|
|
tags:
|
|
- server
|
|
description: "Endpoint for doing a Healthcheck of the Server"
|
|
responses:
|
|
200:
|
|
description: "A Health-Report of the server"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ServerHealth"
|
|
500:
|
|
$ref: "#/components/responses/500InternalError"
|
|
503:
|
|
$ref: "#/components/responses/503ServiceUnavailable"
|
|
/admin/authenticated:
|
|
get:
|
|
operationId: "AdminGetAuthenticated"
|
|
tags:
|
|
- admin
|
|
description: "Endpoint for Checking if you're authenticated as an admin"
|
|
responses:
|
|
200:
|
|
description: "A Minimal Admin Info for testing if the admin is logged in"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AdminAuthInfo"
|
|
401:
|
|
$ref: "#/components/responses/401Unauthorized"
|
|
500:
|
|
$ref: "#/components/responses/500InternalError"
|
|
503:
|
|
$ref: "#/components/responses/503ServiceUnavailable" |