Tujuan

Seluruh endpoint harus mengembalikan format response yang konsisten, sehingga Frontend tidak perlu menangani banyak variasi response.

Format ini berlaku untuk seluruh endpoint, baik success, error, maupun pagination.


Success Response

{
  "success": true,
  "status": 200,
  "code": "PROJECT_GET_SUCCESS",
  "message": "Projects retrieved successfully",
  "data": {},
  "meta": {}
}

Field

Field Keterangan
success Status request (true / false)
status HTTP Status Code
code Internal Response Code
message Pesan untuk developer / debugging
data Data utama response
meta Metadata tambahan (pagination, dll)

Error Response

{
  "success": false,
  "status": 400,
  "code": "VALIDATION_ERROR",
  "message": "Validation failed",
  "errors": [
    {
      "field": "email",
      "message": "Email is required"
    }
  ]
}

Error Validation

{
  "field": "email",
  "message": "Email is required"
}

Apabila terdapat lebih dari satu error validasi, seluruhnya dikembalikan dalam array errors.


Internal Response Code

Selain HTTP Status Code, backend juga mengirimkan Internal Response Code.

Contoh

AUTH_LOGIN_SUCCESS

AUTH_INVALID_CREDENTIALS

AUTH_TOKEN_EXPIRED

USER_NOT_FOUND

PROJECT_CREATED

PROJECT_UPDATED

PROJECT_DELETED

PAYMENT_SUCCESS

PAYMENT_FAILED

BLOCKCHAIN_TRANSACTION_FAILED

VALIDATION_ERROR

INTERNAL_SERVER_ERROR