Problems

Endpoints for managing problems

[ADMIN] Get all problems

get

Retrieves a list of all problems.

Authorizations
Responses
200
OK
*/*
Responseobject
get
GET /api/problems HTTP/1.1
Host: localhost:8080
Authorization: Bearer JWT
Accept: */*
{}

[ADMIN] Create a new problem

post

Creates a new problem using the provided data.

Authorizations
Body
namestringRequired

Name of the problem

Example: Sum of Two Numbers
descriptionstringRequired

Description of the problem

Example: Calculate the sum of two integers.
inDatastringRequired

Input data for the problem

Example: 1
outDatastringRequired

Expected output data for the problem

Example: 3
testsstringRequired

Test cases for the problem (JSON)

Example: {"in":"1","out":"3"}
examplesstringRequired

Example cases for the problem (JSON)

Example: {"in":"1","out":"3"}
Responses
200
OK
*/*
post
POST /api/problems HTTP/1.1
Host: localhost:8080
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 164

{
  "name": "Sum of Two Numbers",
  "description": "Calculate the sum of two integers.",
  "inData": 1,
  "outData": 3,
  "tests": {
    "in": "1",
    "out": "3"
  },
  "examples": {
    "in": "1",
    "out": "3"
  }
}
{
  "id": 1,
  "name": "Sum of Two Numbers",
  "description": "Calculate the sum of two integers.",
  "inData": 1,
  "outData": 3,
  "examples": "Input: 1 2, Output: 3",
  "public": true
}

[ADMIN] Get problem by ID

get

Retrieves a problem by its ID. Required admin role

Authorizations
Path parameters
idinteger · int64Required
Responses
200
OK
*/*
get
GET /api/problems/{id} HTTP/1.1
Host: localhost:8080
Authorization: Bearer JWT
Accept: */*
{
  "id": 1,
  "name": "Sum of Two Numbers",
  "description": "Calculate the sum of two integers.",
  "inData": 1,
  "outData": 3,
  "examples": "Input: 1 2, Output: 3",
  "public": true
}

[ADMIN] Update a problem

patch

Applies partial updates to a problem by its ID.

Authorizations
Path parameters
idinteger · int64Required
Body
anyOptional
Responses
200
OK
*/*
patch
PATCH /api/problems/{id} HTTP/1.1
Host: localhost:8080
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
{
  "id": 1,
  "name": "text",
  "description": "text",
  "inData": "text",
  "outData": "text",
  "tests": "text",
  "examples": "text"
}

[ADMIN] Get problem by ID (extra fields)

get

Retrieves a problem by its ID with admin-level access. Required admin role

Authorizations
Path parameters
idinteger · int64Required
Responses
200
OK
*/*
get
GET /api/problems/{id}/admin HTTP/1.1
Host: localhost:8080
Authorization: Bearer JWT
Accept: */*
{
  "id": 1,
  "name": "text",
  "description": "text",
  "inData": "text",
  "outData": "text",
  "tests": "text",
  "examples": "text"
}

Was this helpful?