Skip to Content
MemulaiRequest & Response

Request & Response

Panduan format standar untuk berkomunikasi dengan Fumai Mobile API.

Format Request

Semua request harus menggunakan:

  • Content-Type: application/json (kecuali upload file: multipart/form-data)
  • Authorization: Bearer {accessToken} (untuk endpoint yang memerlukan auth)
curl -X GET https://fumai.app/api/mobile/v1/auth/me \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json"

Format Response

Fumai API menggunakan dua pola response yang berbeda:

Response Endpoint Auth

Endpoint autentikasi (login, register, Google, Apple) mengembalikan token di top level:

{ "success": true, "accessToken": "eyJhbGciOi...", "refreshToken": "eyJhbGciOi...", "expiresIn": 900, "user": { "id": "clx...", "name": "John Doe", "email": "user@example.com", "role": "USER", "emailVerified": true, "profile": { ... } } }

Response Endpoint Data

Endpoint data (non-auth) menggunakan wrapper data:

{ "success": true, "data": { "id": "clx...", "name": "Contoh Data" } }

Response Get Current User

Endpoint GET /auth/me menggunakan wrapper user (bukan data):

{ "success": true, "user": { "id": "clx...", "name": "John Doe", "email": "user@example.com" } }

Response Error

{ "success": false, "error": "Pesan error", "code": "ERROR_CODE" }
FieldTipeKeterangan
successbooleanSelalu false untuk error
errorstringPesan error
codestringError code untuk handling di client

Upload File

Untuk endpoint yang menerima file (foto profil, dll), gunakan multipart/form-data:

curl -X POST https://fumai.app/api/mobile/v1/onboarding/upload-photo \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "file=@photo.jpg"
const formData = new FormData() formData.append('file', imageFile) const res = await fetch('https://fumai.app/api/mobile/v1/onboarding/upload-photo', { method: 'POST', headers: { Authorization: `Bearer ${accessToken}` }, body: formData, })

Batasan file:

  • Ukuran maksimal: 5MB
  • Tipe yang diterima: image/jpeg, image/png, image/webp

Info: Setiap endpoint memiliki format response yang sedikit berbeda. Cek halaman API Reference untuk detail masing-masing endpoint.

Last updated on