ZellRayyAPI
Notifikasi
Memuat notifikasi...
☀
panduan integrasi post

Request POST & Form-Data

Panduan praktis mengirim file media, buffer gambar, dan parameter form-data ke endpoint ZellRayy API dengan cepat dan tanpa error.

MENGAPA RESPONSNYA "METHOD GET NOT ALLOWED"?

HTTP 405

Ketika URL endpoint diklik atau dibuka langsung melalui address bar browser, browser secara default selalu mengirimkan request GET. Endpoint yang memerlukan file fisik (seperti blur, removebg, dan upscale) wajib menerima request POST dengan data yang dikirim melalui Request Body:

response-405.json
405 Method Not Allowed
{
  "status": false,
  "creator": "ZellRayy",
  "message": "Method GET not allowed. Endpoint ini membutuhkan method POST.",
  "guide": "http://localhost:4000/docs-post",
  "endpoint": "/tools/blurimage",
  "expected_method": "POST",
  "content_type": "multipart/form-data",
  "data": null
}
GET QUERY STRING

Lewat URL (Address Bar)

Semua parameter ditempel langsung di belakang alamat URL menggunakan tanda tanya ?key=value.

GET http://localhost:4000/tools/spamngl?username=andi&count=5
Parameter tampak di URL (query string)
  • Cocok untuk teks pendek dan pencarian data.
  • Tidak bisa mengirim file foto fisik dari galeri HP atau PC.
POST MULTIPART BODY

Sebagai Request Body

Alamat URL tetap bersih dan pendek. File dan data dibungkus tertutup di dalam muatan Request Body.

POST http://localhost:4000/tools/blurimage
File dikirim tertutup via Body (multipart/form-data)
  • Mendukung pengiriman file fisik hingga ukuran 10MB.
  • Dikirim via Bot WhatsApp, Axios, cURL, atau formulir.
CONTOH KODE INTEGRASI

Kode Siap Pakai

Pilih platform atau bahasa pemrograman yang kamu pakai untuk mengirim request POST:

handler.js (Baileys Bot)
// Contoh implementasi di bot WhatsApp (Baileys / WhiskeySockets)
const { downloadMediaMessage } = require('@whiskeysockets/baileys');
const axios = require('axios');
const FormData = require('form-data');

async function handleBlurCommand(sock, m) {
  const quoted = m.quoted ? m.quoted : m;
  const mime = quoted.mimetype || '';

  if (!/image/.test(mime)) {
    return m.reply('Kirim atau balas gambar dengan caption *.blur*');
  }

  m.reply('Sedang memproses gambar...');

  try {
    // 1. Download buffer gambar dari pesan chat WhatsApp
    const buffer = await downloadMediaMessage(quoted, 'buffer', {});

    // 2. Buat FormData dan masukkan buffer gambar
    const form = new FormData();
    form.append('file', buffer, { filename: 'image.jpg' });
    form.append('level', 'recommended'); // Pilihan: recommended, low, high

    // 3. Kirim request POST ke ZellRayy API
    const response = await axios.post('http://localhost:4000/tools/blurimage', form, {
      headers: {
        ...form.getHeaders() // Wajib sertakan header multipart bawaan form-data
      },
      responseType: 'arraybuffer', // Wajib arraybuffer karena respon berupa file gambar
      timeout: 30000
    });

    // 4. Kirim kembali hasil gambar yang sudah diproses ke WhatsApp
    await sock.sendMessage(m.chat, {
      image: Buffer.from(response.data),
      caption: 'Berhasil memproses gambar!'
    }, { quoted: m });

  } catch (err) {
    console.error('Error blur:', err.message);
    m.reply('Gagal memproses gambar: ' + (err.response?.data?.message || err.message));
  }
}

Tips Penting

Batas File 10MB

Server membatasi unggahan file hingga maksimal 10MB per request demi stabilitas sistem.

Header Form-Data

Di Node.js, sertakan ...form.getHeaders() agar boundary multipart terbaca tepat oleh Express.

Response Biner

Gunakan responseType: 'arraybuffer' di Axios agar buffer gambar yang diterima tidak rusak.

Eksplorasi Seluruh Endpoint API

Ingin melihat daftar parameter lengkap dan mencoba langsung seluruh endpoint (GET & POST) secara interaktif tanpa perlu menulis kode?

Buka Dokumentasi Interaktif