Backend API Docs - dedyirama-id/utbk-core GitHub Wiki

Base URL

http://localhost

Web service (backend) menggunakan server yang sama dengan front end sehingga untuk mengakses server backend dapat dilakukan secara langsung melalui url http://localhost. Jika suatu saat server backend dipisahkan dengan frontend maka Base URL akan berubah. Oleh karena itu disarankan Base URL disimpan pada global variable atau variabel environment.

Register New Account

POST <BASE_URL>/api/register
Content-Type: application/json

{
  "username": string,
  "email": string,
  "password": string
}

# Response

{
    "success": true,
    "message": "User created successfully",
    "user": {
        "username": "test-user",
        "email": "[email protected]",
        "role": "user",
        "_id": "6687f454b9ba42a0ec26dd90",
        "createDate": "2024-07-05T13:25:40.800Z",
        "lastLoggedIn": "2024-07-05T13:25:40.801Z",
        "qmath": {
            "histories": [],
            "lastLoggedIn": "2024-07-05T13:25:40.804Z"
        },
        "__v": 0
    }
}

Login

POST <BASE_URL>/api/login
Content-Type: application/json

{
  "email": string,
  "password": string"
}

# Response

{
    {
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY2ODdmNDU0YjliYTQyYTBlYzI2ZGQ5MCIsInVzZXJuYW1lIjoidGVzdC11c2VyIiwiaWF0IjoxNzIwMTg2MDgxfQ.toWtdccxBP6L7AGfIYaiefzuXxEC6YlTwDnJpZjaPJs",
    "user": {
        "_id": "6687f454b9ba42a0ec26dd90",
        "username": "test-user",
        "email": "[email protected]",
        "role": "user",
        "createDate": "2024-07-05T13:25:40.800Z",
        "lastLoggedIn": "2024-07-05T13:25:40.801Z",
        "qmath": {
            "histories": [],
            "lastLoggedIn": "2024-07-05T13:25:40.804Z"
        },
        "__v": 0
    }
}

Request New Access Token

POST <BASE_URL>/api/refresh-token

Get User Profile

GET <BASE_URL>/api/profile
Authorization: Bearer <access-token>

# Response

{
    "_id": "6687f454b9ba42a0ec26dd90",
    "username": "test-user",
    "email": "[email protected]",
    "role": "user",
    "createDate": "2024-07-05T13:25:40.800Z",
    "lastLoggedIn": "2024-07-05T13:25:40.801Z",
    "qmath": {
        "histories": [],
        "lastLoggedIn": "2024-07-05T13:25:40.804Z"
    },
    "__v": 0
}

Delete User Account

DELETE <BASE_URL>/account
Content-Type: application/json
Authorization: Bearer <access-token>

{
  "password": string
}

# Response

{
    "success": true,
    "message": "Goodbye! We will miss you"
}
⚠️ **GitHub.com Fallback** ⚠️