นี่คือซีรีส์ 10 ตอนที่เล่าถึงวิธีที่ Apidog พัฒนา Apidog CLI ซึ่งเป็นเครื่องมือบรรทัดคำสั่งสำหรับการทดสอบ API และการจัดการวงจรชีวิต API คุณสามารถอ่านตามลำดับหรือเลือกอ่านตอนที่คุณสนใจได้เลย:
| หัวข้อ | จุดเน้น | |
|---|---|---|
| 1 | เราสร้างเครื่องมือ MCP ถึง 126 ชิ้น แต่นั่นไม่ใช่ทางออกที่ดีที่สุดสำหรับ Agent | การค้นพบปัญหา |
| 2 | ทำไมเราถึงพัฒนา Apidog CLI ตัวใหม่ล่าสุด | การพัฒนาสถาปัตยกรรม |
| 3 | กฎทอง: CLI สร้างข้อเท็จจริง, Model ทำงานบนข้อเท็จจริง | ปรัชญาหลัก |
| 4 | agentHints: สอน CLI ให้สื่อสารกับ Agents |
ผลลัพธ์ที่มีโครงสร้าง |
| 5 | SKILL: การส่งมอบประสบการณ์การทำงานเป็นโค้ด | ประสบการณ์การดำเนินงาน |
| 6 | ตัวเลขไม่โกหก: การเรียกใช้เครื่องมือลดลง 30%, โทเค็นลดลง 25% | ผลลัพธ์เชิงปริมาณ |
| 7 | จาก PRD สู่ Testing Loop: เวิร์กโฟลว์ Agent ที่สมบูรณ์แบบด้วย Apidog CLI | บทแนะนำเชิงปฏิบัติ |
| 8 | ทำไมความเข้ากันได้กับ CI/CD จึงเป็นสิ่งที่ไม่สามารถต่อรองได้สำหรับเครื่องมือ Agent | มุมมองของ DevOps |
| 9 | AI Branch: การเปลี่ยนแปลงโปรเจกต์ที่ปลอดภัยยิ่งขึ้นด้วย AI Agents | ชั้นความปลอดภัย |
| 10 | Spec-First เป็นเรื่องของเมื่อวาน ยินดีต้อนรับสู่ Skill-First | วิสัยทัศน์และอนาคต |
การเป็นมิตรกับ Agent ต้องสร้างอยู่บนพื้นฐานของการเป็นมิตรกับ CI/CD เรียนรู้ว่าทำไม apidog run จึงรองรับทั้ง CI pipelines และ AI Agents—และทำไมวัตถุประสงค์คู่ขนานนี้จึงสำคัญ
กลุ่มเป้าหมายคู่ขนาน
เมื่อสร้างเครื่องมือ Agent เป็นเรื่องง่ายที่จะมุ่งเน้นแต่เพียงประสบการณ์การสนทนาเท่านั้น
Apidog CLI มีเป้าหมายการให้บริการที่สำคัญซึ่งไม่ควรมองข้าม: CI/CD
| กลุ่มเป้าหมายเดิม | กลุ่มเป้าหมายใหม่ |
|---|---|
| CI/CD pipelines | AI Agents |
| ระบบการจัดตารางภายนอก | เวิร์กโฟลว์การสนทนา |
| สคริปต์และระบบอัตโนมัติ | งานที่ขับเคลื่อนโดยผู้ใช้ |
หลายทีมกำลังใช้ Apidog ใน pipelines เพื่อ:
- เรียกใช้การทดสอบ API อัตโนมัติ
- สร้างรายงาน
- รักษาระดับคุณภาพ (quality gates)
สถานการณ์นี้ต้องการ:
| ข้อกำหนด | ทำไม |
|---|---|
| ผลลัพธ์ที่เสถียร | สคริปต์แยกวิเคราะห์ผลลัพธ์ที่คาดเดาได้ |
| คำสั่งที่สามารถเขียนสคริปต์ได้ | การดำเนินการอัตโนมัติ |
| รหัสออกที่ชัดเจน | การตัดสินใจผ่าน/ไม่ผ่านของ pipeline |
| พารามิเตอร์ที่กำหนดค่าได้ | การรันเฉพาะสภาพแวดล้อม |
ระบบอัตโนมัติไม่สามารถเสียหายได้เพียงเพื่อรองรับ Agents
หลักการสำคัญ
การเป็นมิตรกับ Agent ต้องสร้างอยู่บนพื้นฐานของการเป็นมิตรกับ CI/CD
เราไม่ได้สร้างโปรโตคอลใหม่ที่ใช้ได้เฉพาะกับ AI เท่านั้น เราได้เพิ่มเอาต์พุตที่มีโครงสร้าง การตรวจสอบ Schema และคำแนะนำขั้นตอนถัดไปที่ Agents ต้องการ บนพื้นฐานรูปแบบที่ได้รับการตรวจสอบแล้วโดยระบบวิศวกรรม
เครื่องมือวิศวกรรม CLI ที่ดีในยุคของ Agent ควรสามารถให้บริการได้:
| ผู้ใช้งาน | ความต้องการของพวกเขา |
|---|---|
| มนุษย์ | เอาต์พุตที่อ่านง่าย, ข้อความช่วยเหลือ, ฟีเจอร์แบบโต้ตอบ |
| สคริปต์ | เอาต์พุตที่เสถียร, คำสั่งที่สามารถเขียนสคริปต์ได้ |
| CI pipelines | รหัสออก, ไฟล์รายงาน, การรันที่กำหนดค่าได้ |
| AI Agents | ผลลัพธ์ที่มีโครงสร้าง, การตรวจสอบ, คำแนะนำ |
apidog run: คำสั่งหลัก
รากฐานยังคงอยู่:
apidog run --project <projectId> \
--test-scenario <scenarioId> \
--environment <environmentId> \
-r "cli,html,junit" \
--out-dir ./apidog-reportsคำสั่งนี้ให้บริการ ผู้ใช้งานทั้งสี่กลุ่ม
สิ่งที่ CI สนใจ
| ข้อกำหนดของ CI | คุณสมบัติของ CLI |
|---|---|
| รหัสออก (Exit codes) | 0 สำหรับผ่าน, 1 สำหรับไม่ผ่าน — การตัดสินใจของ pipeline |
| ไฟล์รายงาน | รูปแบบ HTML, JUnit, JSON ใน --out-dir |
| พารามิเตอร์ที่เสถียร | ตัวเลือกที่สอดคล้องกันในแต่ละเวอร์ชัน |
| การรันที่กำหนดค่าได้ | การทำซ้ำ (-n), การหน่วงเวลา (--delay-request), สภาพแวดล้อม (-e) |
ตัวอย่างการใช้งาน CI:
# GitHub Actions
- name: Run API Tests
run: |
apidog run --project $PROJECT_ID \
--test-scenario $SCENARIO_ID \
--environment $ENV_ID \
-r "junit" \
--out-dir ./reports
env:
PROJECT_ID: ${{ secrets.APIDOG_PROJECT_ID }}
SCENARIO_ID: ${{ secrets.APIDOG_SCENARIO_ID }}
ENV_ID: production
- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
with:
report_paths: './reports/junit.xml'Pipeline อ่านรหัสออก → ผ่านหรือไม่ผ่าน → เผยแพร่รายงาน
สิ่งที่ Agents สนใจ
| ข้อกำหนดของ Agent | คุณสมบัติของ CLI |
|---|---|
| ผลลัพธ์ที่มีโครงสร้าง | รูปแบบ JSON ที่มีออบเจกต์ data |
| เหตุผลของความล้มเหลว | รายละเอียดข้อผิดพลาดเฉพาะในออบเจกต์ error |
| คำแนะนำขั้นตอนถัดไป | agentHints ที่มีอาร์เรย์ nextSteps |
| การตรวจสอบความถูกต้อง | cli-schema validate ก่อนเขียน |
ตัวอย่างการใช้งาน Agent:
{
"success": true,
"stats": {
"total": 10,
"passed": 8,
"failed": 2
},
"failures": [
{
"step": "Payment processing",
"error": "Assertion failed: status != 'success'",
"response": {...}
}
],
"agentHints": {
"summary": "มี 2 การทดสอบล้มเหลว ตรวจสอบรายละเอียดความล้มเหลว",
"nextSteps": [
"แก้ไขข้อผิดพลาดในขั้นตอน 'Payment processing'",
"ตรวจสอบ assertion: คาดหวังสถานะ 'success'",
"อัปเดต test case หรือ endpoint หลังจากแก้ไขแล้ว"
]
}
}Agent แยกวิเคราะห์ JSON → ทำความเข้าใจความล้มเหลว → ทำตามขั้นตอนถัดไป
คำสั่งเดียวกัน ผู้ใช้งานต่างกัน
apidog run --project <projectId> --out-dir ./apidog-reports
| ผู้ใช้งาน | สิ่งที่พวกเขาแยกจากข้อมูล |
|---|---|
| CI pipeline | รหัสออก (0/1), ตำแหน่งไฟล์รายงาน |
| Agent | เอาต์พุต JSON, agentHints, รายละเอียดความล้มเหลว |
| มนุษย์ | เอาต์พุตคอนโซล, ลิงก์รายงาน HTML |
| สคริปต์ | Stdout/stderr, รูปแบบที่กำหนดค่าได้ |
หนึ่งคำสั่งให้บริการทั้งหมด
จุดเชื่อมโยง
Apidog CLI รองรับการเชื่อมโยงกับ:
| เครื่องมือ CI | การเชื่อมโยง |
|---|---|
| Jenkins | ขั้นตอนของ Pipeline, การเผยแพร่รายงาน |
| GitLab CI | การกำหนดค่า YAML, Artifacts |
| GitHub Actions | ขั้นตอนเวิร์กโฟลว์, การจัดการ Secret |
| CircleCI | Orbs, การกำหนดค่าเวิร์กโฟลว์ |
| Azure DevOps | Pipeline tasks, ผลการทดสอบ |
การเชื่อมโยงทั้งหมดใช้รากฐาน apidog run เดียวกัน
Quality Gate เทียบกับการยืนยัน
| กรณีการใช้งาน | ความหมาย |
|---|---|
| CI quality gate | ผ่าน/ไม่ผ่านเป็นตัวกำหนดความก้าวหน้าของ pipeline |
| การยืนยันโดย Agent | เรียกใช้หลังจากการเปลี่ยนแปลงเพื่อยืนยันความถูกต้อง |
คำสั่งเดียวกัน บริบทต่างกัน:
| บริบท | เมื่อใช้ | วัตถุประสงค์ |
|---|---|---|
| CI | หลังการ push โค้ด | ป้องกันไม่ให้โค้ดที่ไม่ดีถูกปรับใช้ |
| Agent | หลังการสร้างการทดสอบ | ยืนยันว่างานของ Agent ถูกต้อง |
หลักการพื้นฐาน
ทุกสิ่งที่เราได้อธิบายในซีรีส์นี้—cli-schema, agentHints, SKILL—สร้างขึ้นบนรากฐานนี้:
┌─────────────────────────────────────────┐
│ คุณสมบัติของ Agent │
│ (cli-schema, agentHints, SKILL) │
├─────────────────────────────────────────┤
│ รากฐาน CI/CD │
│ (apidog run, exit codes, reports) │
├─────────────────────────────────────────┤
│ Core CLI │
│ (commands, parameters, execution) │
└─────────────────────────────────────────┘คุณสมบัติของ Agent ไม่ได้มาแทนที่คุณสมบัติของ CI แต่เป็นการต่อยอด
ต่อไปคืออะไร
เราได้ครอบคลุมภาพรวมทั้งหมดแล้ว—ตั้งแต่การค้นพบปัญหาไปจนถึงเวิร์กโฟลว์เชิงปฏิบัติและหลักการพื้นฐาน
ตอนนี้มีอีกหนึ่งส่วนที่สำคัญ: ความปลอดภัย
เมื่อ Agents ปรับเปลี่ยนทรัพยากรโปรเจกต์ คุณจะป้องกันไม่ให้พวกเขาส่งผลกระทบโดยตรงต่อ main branch ได้อย่างไร?
ในตอนที่ 9, AI Branch: การเปลี่ยนแปลงโปรเจกต์ที่ปลอดภัยยิ่งขึ้นด้วย AI Agents เราจะสำรวจว่า AI Branch ให้สภาพแวดล้อมการแก้ไขที่แยกจากกันอย่างไร—การเปลี่ยนแปลงจะคงอยู่ใน branch ที่แยกต่างหากจนกว่าจะมีการตรวจสอบโดยมนุษย์ สร้างชั้นความปลอดภัยสำหรับการแก้ไขที่ขับเคลื่อนโดย Agent
ประเด็นสำคัญ
- ความเข้ากันได้กับ CI/CD คือรากฐาน ไม่ใช่ทางเลือก
- ความเป็นมิตรกับ Agent สร้างขึ้นบนความเป็นมิตรกับ CI
- คำสั่งเดียวกัน (
apidog run) ให้บริการแก่ CI, Agents, มนุษย์, สคริปต์ - สิ่งที่ CI ต้องการ: รหัสออก, รายงาน, พารามิเตอร์ที่เสถียร
- สิ่งที่ Agents ต้องการ: เอาต์พุตที่มีโครงสร้าง, รายละเอียดความล้มเหลว, ขั้นตอนถัดไป
- Quality gate (CI) + การยืนยัน (Agent) = วัตถุประสงค์คู่ขนาน
ดาวน์โหลด Apidog เพื่อ ออกแบบ, จำลอง, ทดสอบ, และ จัดทำเอกสาร API ในเวิร์กสเปซเดียว เรียนรู้เพิ่มเติมเกี่ยวกับ Apidog CLI สำหรับการทดสอบ API ด้วยบรรทัดคำสั่ง, ระบบอัตโนมัติ CI, และเวิร์กโฟลว์ AI Agent
