Lewati ke konten utama

Alur aplikasi

Halaman ini menunjukkan bagaimana endpoint yang terdokumentasi saling terhubung. Fokusnya adalah dependensi antarpanggilan: nilai mana yang perlu disimpan dan tempat menggunakannya pada langkah berikutnya.

Ringkasan alur

Masuk

├─► Validasi sesi / lihat profil

└─► Periksa kuota


Buat proyek

└─ simpan response.data.id


Aktifkan listening
(`islisten = 1`)


Mulai scraping

├─► Baca mention / jumlah konten
├─► Ubah status listening
│ └─ jika diaktifkan kembali,
│ jalankan scraping lagi
└─► Hapus proyek

Selesai: keluar dari sesi saat ini atau keluar dari semua perangkat

1. Masuk

Panggil POST /api/auth/login dengan username dan password.

Simpan nilai respons berikut:

NilaiDigunakan untuk
tokenAuthorization: Bearer <token> pada endpoint yang dilindungi
expires_atMenentukan kapan klien harus memperbarui atau mengakhiri sesi
user dan rolesMenampilkan identitas dan otorisasi di sisi klien

Anda dapat memvalidasi token dengan GET /api/auth/session atau membaca profil saat ini dengan GET /api/auth/me.

2. Opsional: periksa kuota

Panggil GET /api/user-quota ketika klien perlu menampilkan atau memeriksa sisa kuota. Endpoint ini mengembalikan id dan kuota milik pengguna yang terautentikasi.

3. Buat proyek

Panggil POST /api/project dengan keenam field wajib:

{
"categoryId": "umum",
"endDate": "2026-07-31",
"group": "Acme July Monitoring",
"keyword": "acme",
"startDate": "2026-07-01",
"type": "manual"
}

Nilai categoryId yang diizinkan dan tercantum dalam deskripsi operasi:

sosial-budaya
ideologi
politik
ekonomi
pertahanan-keamanan
semua
umum
olahraga
sosial
budaya
teknologi
hiburan
kesehatan
pendidikan
agama

Simpan data.id dari respons 201. Endpoint pengelolaan proyek menggunakannya sebagai ID proyek.

Gunakan GET /api/project?page=1&limit=10 untuk mengambil proyek yang sudah ada.

4. Mulai pengumpulan data

Pengumpulan data memerlukan dua panggilan API yang dijalankan secara berurutan.

4.1 Aktifkan listening

Panggil PATCH /api/project/listen-status dengan islisten bernilai 1:

{
"id": "<data.id from project creation>",
"islisten": 1
}

4.2 Jalankan scraping

Setelah listening aktif, panggil POST /api/ai-service/scrap-project-keywords:

{
"keyword_id": "<data.id from project creation>"
}
Urutan panggilan

Mengubah islisten menjadi 1 hanya mengaktifkan status listening. Scraping tetap harus dipicu dengan memanggil POST /api/ai-service/scrap-project-keywords.

Respons Swagger berisi success dan result tanpa tipe, tetapi tidak menjelaskan apakah respons menandakan proses dikirim atau selesai serta tidak mendefinisikan ID tugas atau endpoint status. Jangan membuat mekanisme polling ke rute /status yang tidak terdokumentasi.

5. Baca hasil

Gunakan ID yang disimpan pada panggilan berikut:

TujuanPermintaan
Baca mentionGET /api/mentions?keywordId=<id>&page=1&limit=10
Hitung semua konten yang terkumpulGET /api/project/content-count?id=<id>
Hitung konten dari satu sumberGET /api/project/content-count?id=<id>&sosmedId=<source>

keywordId wajib digunakan untuk mengambil mention. sentimen dan sosmedId adalah filter opsional.

Nilai sosmedId yang didukung:

  • twitter
  • facebook
  • youtube
  • tiktok
  • instagram
  • news

6. Buat ringkasan AI

Setelah mention tersedia:

  1. Panggil POST /api/project/generate-summary/<id> untuk membuat ringkasan.
  2. Panggil GET /api/project/summary/<id> untuk mengambil kembali ringkasan yang tersimpan.

Endpoint pembuatan ringkasan mengembalikan sentiment_distribution yang terstruktur. Endpoint pengambilan mengembalikan sentiment_distribution sebagai string; uraikan sebagai JSON hanya jika nilai runtime merupakan JSON terserialisasi yang valid.

7. Kelola atau hapus proyek

  • Atur status listening dengan PATCH /api/project/listen-status:
    • gunakan islisten: 1 untuk mengaktifkan listening;
    • gunakan islisten: 0 untuk menonaktifkan listening.
  • Jika listening diaktifkan kembali dari 0 menjadi 1, panggil kembali POST /api/ai-service/scrap-project-keywords untuk memulai scraping.
  • Hapus proyek dengan DELETE /api/project?id=<id>.

Dari sudut pandang konsumen API, penghapusan bersifat permanen. Konfirmasikan ID sebelum mengirim permintaan.

8. Akhiri sesi

Pilih endpoint berdasarkan cakupannya:

TujuanAutentikasiPayload
Akhiri sesi yang disertakan/saat iniPOST /api/auth/logoutBody JSON yang berisi token
Cabut semua sesi penggunaPOST /api/auth/logout-allBearer token, tanpa body