Ini adalah seri 10 bagian yang menceritakan bagaimana Apidog mengembangkan Apidog CLI, sebuah alat baris perintah untuk pengujian API dan manajemen siklus hidup API. Bacalah secara berurutan atau lompat ke postingan mana pun yang menarik minat Anda:
| Judul | Fokus | |
|---|---|---|
| 1 | Kami Membangun 126 Alat MCP. Tapi Itu Bukan Solusi Terbaik untuk Agent | Penemuan masalah |
| 2 | Mengapa Kami Mengembangkan Apidog CLI yang Baru | Pengembangan arsitektur |
| 3 | Aturan Emas: CLI Menghasilkan Fakta, Model Bertindak atas Fakta | Filosofi inti |
| 4 | agentHints: Mengajari CLI untuk Berbicara dengan Agent |
Output terstruktur |
| 5 | SKILL: Mengirimkan Pengalaman Operasional sebagai Kode | Pengalaman operasional |
| 6 | Angka Tidak Berbohong: 30% Lebih Sedikit Panggilan Alat, 25% Lebih Sedikit Token | Hasil kuantitatif |
| 7 | Dari PRD hingga Lingkaran Pengujian: Alur Kerja Agent Lengkap dengan Apidog CLI | Tutorial praktis |
| 8 | Mengapa Kompatibilitas CI/CD Tidak Dapat Dinegosiasikan untuk Alat Agent | Perspektif DevOps |
| 9 | Cabang AI: Perubahan Proyek yang Lebih Aman dengan Agen AI | Lapisan keamanan |
| 10 | Spec-First Dulu. Selamat Datang di Skill-First. | Visi & masa depan |
Ikuti contoh nyata: sebuah tim memiliki PRD dan basis kode Pengembalian Dana Pesanan. Lihat bagaimana Agent menggunakan Apidog CLI + SKILL untuk menghasilkan OpenAPI, membuat pengujian, memvalidasi, dan memverifikasi—secara menyeluruh.
Skenario
Mari kita buat semuanya konkret dengan alur kerja nyata.
Konteks:
Sebuah tim baru saja selesai menulis PRD "Pengembalian Dana Pesanan". Basis kode sudah memiliki rute dan pengontrol yang sesuai.
Permintaan pengguna ke Agent:
"Hasilkan pengujian API untuk fungsionalitas pengembalian dana berdasarkan PRD dan basis kode, lalu jalankan verifikasi."
Masalah Pendekatan Lama
Dengan alat MCP, Agent menghadapi serangkaian dilema:
| Titik Keputusan | Ketidakpastian |
|---|---|
| Query proyek dulu? | Atau buat endpoint dulu? |
| Tulis kasus uji dulu? | Atau hasilkan Skema dulu? |
| Jalankan pengujian langsung? | Atau baca kembali sumber daya dulu? |
| Alat mana untuk setiap langkah? | Cari melalui 126 alat |
Agent menghabiskan banyak upaya hanya untuk memutuskan jalur—bukan untuk mengeksekusi tugas.
Jalur CLI + SKILL
CLI + SKILL memenuhi alur R&D nyata dengan urutan yang jelas:
Hasilkan OpenAPI dari PRD & basis kode
↓
Impor ke Apidog
↓
Tambahkan kasus uji satu endpoint
↓
Validasi sebelum menulis
↓
Hasilkan skenario uji untuk alur bisnis
↓
Validasi sebelum menulis
↓
Jalankan pengujian otomatisMari kita jelajahi setiap langkah.
Langkah 1: Hasilkan & Impor OpenAPI
Agent membaca PRD dan basis kode, lalu menghasilkan spesifikasi OpenAPI.
Kutipan PRD:
API Pengembalian Dana Pesanan
POST /api/orders/{orderId}/refund
- Badan permintaan: { "reason": string, "amount": number }
- Respons: { "refundId": string, "status": string, "processedAt": datetime }
GET /api/orders/{orderId}/refund/{refundId}
- Respons: { "refundId": string, "status": string, "amount": number }Agent menghasilkan OpenAPI:
{
"openapi": "3.0.0",
"paths": {
"/api/orders/{orderId}/refund": {
"post": {
"summary": "Buat permintaan pengembalian dana",
"parameters": [...],
"requestBody": {...},
"responses": {...}
}
},
"/api/orders/{orderId}/refund/{refundId}": {
"get": {
"summary": "Dapatkan status pengembalian dana",
...
}
}
}
}Impor ke Apidog:
apidog import --project <projectId> --format openapi --file ./openapi.jsonOutput CLI:
{
"success": true,
"data": {
"importedEndpoints": ["POST /refund", "GET /refund/{refundId}"],
"endpointIds": ["ep-001", "ep-002"]
},
"agentHints": {
"summary": "OpenAPI berhasil diimpor. 2 endpoint dibuat.",
"nextSteps": [
"Daftar endpoint yang diimpor untuk mengonfirmasi struktur.",
"Tambahkan kasus uji untuk setiap endpoint.",
"Buat skenario uji untuk alur pengembalian dana lengkap."
]
}
}Langkah 2: Kasus Uji Single-Endpoint
Agent fokus pada "endpoint pengembalian dana" terlebih dahulu.
Agent membaca endpoint:
apidog endpoint get ep-001 --project <projectId>CLI mengembalikan struktur endpoint:
{
"id": "ep-001",
"method": "POST",
"path": "/api/orders/{orderId}/refund",
"requestBody": {
"schema": {
"type": "object",
"properties": {
"reason": { "type": "string" },
"amount": { "type": "number" }
},
"required": ["reason", "amount"]
}
},
"responses": {
"200": {...}
}
}Agent menghasilkan kasus uji:
{
"name": "Buat pengembalian dana - sukses",
"endpointId": "ep-001",
"request": {
"path": "/api/orders/order-123/refund",
"body": {
"reason": "Permintaan pelanggan",
"amount": 99.99
}
},
"assertions": [
{
"subject": "responseJson.status",
"comparator": "equal",
"target": "processed"
}
]
}Validasi sebelum menulis:
apidog cli-schema validate test-case-create --file ./test-case-create.jsonHasil validasi CLI:
{
"success": true,
"agentHints": {
"summary": "Struktur kasus uji valid.",
"nextSteps": [
"Buat kasus uji di Apidog.",
"Baca kembali kasus uji yang dibuat untuk konfirmasi.",
"Tambahkan lebih banyak assertions jika diperlukan."
]
}
}Buat kasus uji:
apidog test-case create --project <projectId> --file ./test-case-create.jsonOutput CLI:
{
"success": true,
"data": {
"id": "tc-001",
"name": "Buat pengembalian dana - sukses"
},
"agentHints": {
"summary": "Kasus uji berhasil dibuat.",
"nextSteps": [
"Baca kembali kasus uji tc-001 untuk mengonfirmasi assertions.",
"Buat kasus uji untuk GET /refund/{refundId}.",
"Bangun skenario uji untuk alur pengembalian dana lengkap."
]
}
}Langkah 3: Skenario Uji untuk Alur Lengkap
Berdasarkan PRD, alur bisnis lengkapnya adalah:
Buat pesanan → Bayar → Pengembalian dana → Query status pengembalian danaAgent menghasilkan skenario:
{
"name": "Alur Lengkap Pengembalian Dana Pesanan",
"steps": [
{ "type": "case", "caseId": "tc-create-order" },
{ "type": "case", "caseId": "tc-pay" },
{ "type": "case", "caseId": "tc-001" },
{ "type": "case", "caseId": "tc-get-refund" }
]
}Validasi sebelum menulis:
apidog cli-schema validate test-scenario-update --file ./scenario-update.jsonBuat skenario:
apidog test-scenario create --project <projectId> --file ./scenario-update.jsonLangkah 4: Jalankan Verifikasi
Setelah kasus uji dan skenario siap:
apidog run --project <projectId> \
--test-scenario scenario-001 \
--environment env-production \
-r "cli,html,junit" \
--out-dir ./apidog-reportsOutput CLI:
{
"success": true,
"stats": {
"total": 4,
"passed": 4,
"failed": 0
},
"reportFiles": {
"cli": "./apidog-reports/cli-report.txt",
"html": "./apidog-reports/report.html",
"junit": "./apidog-reports/junit.xml"
},
"agentHints": {
"summary": "Semua pengujian berhasil. 4 langkah dieksekusi dengan sukses.",
"nextSteps": [
"Tinjau laporan HTML untuk hasil rinci.",
"Jika terjadi kegagalan, debug menggunakan detail kesalahan CLI.",
"Integrasikan pengujian ini ke dalam pipeline CI."
]
}
}Rantai Lengkap
Semua elemen sekarang terhubung:
| Elemen | Status |
|---|---|
| PRD | Dibaca dan diproses |
| Codebase | Dianalisis untuk rute |
| OpenAPI | Dihasilkan dan diimpor |
| Aset endpoint | Dibuat di Apidog |
| Pengujian satu endpoint | Dibuat dan divalidasi |
| Skenario bisnis | Dibangun dan diverifikasi |
Semuanya dapat diverifikasi dan dilacak.
agentHints Melalui Alur
Perhatikan bagaimana agentHints memandu setiap transisi:
| Setelah | agentHints Menyarankan |
|---|---|
| Impor endpoint | "Daftar endpoint, tambahkan kasus uji" |
| Buat kasus uji | "Baca kembali, buat lebih banyak kasus uji, bangun skenario" |
| Buat skenario | "Tambahkan assertions, validasi, jalankan" |
| Jalankan pengujian | "Tinjau laporan, debug jika diperlukan, integrasikan ke CI" |
Agent tidak perlu menebak apa yang harus dilakukan selanjutnya.
Perbandingan: MCP vs. CLI + SKILL untuk Tugas Ini
| Dimensi | Pendekatan MCP | Pendekatan CLI + SKILL |
|---|---|---|
| Titik awal | Agent mencari alat proyek | SKILL mengidentifikasi jenis tugas |
| Pembuatan endpoint | Agent menebak alat mana, bidang mana | Impor CLI dari OpenAPI |
| Pembuatan kasus uji | Beberapa percobaan ulang pada kesalahan bidang | Validasi lokal sebelum menulis |
| Pembangunan skenario | Agent menulis struktur secara manual | Impor langkah-langkah, baca kembali, perbarui |
| Verifikasi | Agent menemukan alat lari | agentHints menyarankan setelah skenario |
| Total langkah | ~20-25 panggilan dengan percobaan ulang | ~10-12 panggilan yang divalidasi |
Apa Selanjutnya
Contoh praktis ini menunjukkan bagaimana CLI + SKILL bekerja dalam alur kerja nyata.
Namun ada fondasi di balik semua ini: kompatibilitas CI/CD.
Dalam Bagian 8, Mengapa Kompatibilitas CI/CD Tidak Dapat Dinegosiasikan untuk Alat Agent, kita akan menjelajahi mengapa apidog run melayani pipeline CI dan Agent AI—dan mengapa tujuan ganda itu penting untuk desain alat yang berkelanjutan.
Poin-Poin Penting
- Alur kerja lengkap: PRD → OpenAPI → Impor → Kasus Uji → Skenario → Verifikasi
- Setiap langkah memiliki perintah CLI + validasi + agentHints
- Impor langkah-langkah + baca kembali lebih aman daripada menulis skenario secara manual
--with-case-detailmemberikan struktur nyata untuk pembaruan- agentHints memandu setiap transisi
- Semuanya dapat diverifikasi dan dilacak
Unduh Apidog untuk mendesain, membuat mock, menguji, dan mendokumentasikan API dalam satu ruang kerja. Pelajari lebih lanjut tentang Apidog CLI untuk pengujian API baris perintah, otomatisasi CI, dan alur kerja Agen AI.
