DEV Community

Cover image for วิธีใช้ Apidog CLI ในโค้ด Claude
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

วิธีใช้ Apidog CLI ในโค้ด Claude

Claude Code ทำงานเป็นวงจร: แก้ไขไฟล์, รันคำสั่งในเทอร์มินัล, อ่านผลลัพธ์, แล้วตัดสินใจขั้นตอนถัดไป แต่การทดสอบ API มักยังอยู่หลัง GUI ของ Apidog และจะรันก็ต่อเมื่อมีคนจำได้ว่าต้องคลิก บทความนี้จะเชื่อม Apidog CLI เข้ากับ Claude Code เพื่อให้เอเจนต์รัน API test, อ่าน exit code และแก้ไขโค้ดต่อได้ในวงจรเดียวกัน

ลองใช้ Apidog วันนี้

Apidog CLI คือแพ็กเกจ npm ชื่อ apidog-cli สำหรับรัน test scenario ที่สร้างใน Apidog จากเทอร์มินัลโดยตรง เมื่อติดตั้ง CLI และกำหนดคำสั่งไว้ใน CLAUDE.md แล้ว Claude Code จะใช้ API test เหมือนกับ unit test: รันคำสั่ง, ตรวจผลลัพธ์, และแก้ไขเมื่อการทดสอบล้มเหลว

คู่มือนี้เน้นการตั้งค่าที่ใช้กับ Claude Code โดยตรง: เพิ่มคำสั่งลงใน CLAUDE.md, อนุญาตให้ Claude Code รัน apidog run, และใช้ผลลัพธ์เป็นส่วนหนึ่งของวงจรแก้ไข-ทดสอบ-แก้ไข

หากยังไม่ได้ติดตั้ง CLI ให้เริ่มจาก วิธีติดตั้ง Apidog CLI ด้วยเอเจนต์โค้ดดิ้ง AI ก่อน บทความนี้สมมติว่าคำสั่งต่อไปนี้ทำงานได้และบัญชี Apidog ได้รับการยืนยันสิทธิ์แล้ว:

apidog --version
Enter fullscreen mode Exit fullscreen mode

Claude Code ที่กำลังพูดถึงนี้คืออะไร

Claude Code คือ CLI coding agent ของ Anthropic ที่ทำงานในเทอร์มินัลหรือแอปเดสก์ท็อป มันสามารถอ่านรีโพสิทอรี, แก้ไขไฟล์ และรันคำสั่งเชลล์ตาม permission mode ที่ตั้งไว้

หากคุณรันคำสั่งนี้จากรีโพสิทอรีแล้วได้รับเอเจนต์แบบโต้ตอบที่เสนอแก้ไขโค้ดและรันคำสั่ง แสดงว่าคุณใช้ Claude Code อยู่แล้ว:

claude
Enter fullscreen mode Exit fullscreen mode

Claude Code เรียนรู้กฎเฉพาะของโปรเจกต์ผ่านไฟล์ CLAUDE.md ซึ่งทำให้คำสั่ง “รัน API test” ไม่ได้อยู่แค่ในแชทครั้งเดียว แต่เป็นคำสั่งที่เอเจนต์นำกลับมาใช้ได้ทุกเซสชัน สำหรับคำสั่งเพิ่มเติม ดู คำสั่งสแลชของ Claude Code

ขั้นตอนที่ 1: เพิ่มบล็อก Apidog ลงใน CLAUDE.md

Claude Code อ่าน CLAUDE.md เมื่อเริ่มเซสชัน แนวคิดนี้เทียบได้กับ AGENTS.md สำหรับ Codex แต่ Claude Code อ่าน CLAUDE.md ไม่ใช่ AGENTS.md หากโปรเจกต์มี AGENTS.md สำหรับเอเจนต์อื่นอยู่แล้ว คุณสามารถนำเข้าได้ด้วย @AGENTS.md

หากเคยตั้งค่า Apidog CLI ใน Codex มาแล้ว ขั้นตอนเหมือนกัน โดยเปลี่ยนไฟล์กฎเป็น CLAUDE.md

สร้างหรือแก้ไขไฟล์ที่ root ของรีโพสิทอรี:

your-project/
├── CLAUDE.md
├── package.json
└── ...
Enter fullscreen mode Exit fullscreen mode

Claude Code ยังรองรับ ./.claude/CLAUDE.md และ ~/.claude/CLAUDE.md สำหรับค่าตั้งต้นส่วนบุคคล แต่การวางไฟล์ที่ root ของรีโพสิทอรีทำให้ทุกคนในทีมใช้กฎเดียวกันได้

เพิ่มบล็อกนี้ลงใน CLAUDE.md:

## API testing with Apidog CLI

This project has Apidog test scenarios. To check the API, run:

`apidog run -t <scenario_id> -e <env_id> -r cli`

- Exit code 0 means every assertion passed. Non-zero means something failed; open the report and fix it before moving on.
- The machine is already authenticated via `apidog login`. Never add an `--access-token` flag and never put a token in this file.
- If a flag is unknown, run `apidog run --help` and use the exact flag from there.
Enter fullscreen mode Exit fullscreen mode

แทนที่ <scenario_id> และ <env_id> ด้วยค่าจริงจากโปรเจกต์ของคุณ

เหตุผลที่ควรเก็บคำสั่งไว้ใน CLAUDE.md คือข้อมูลที่พิมพ์ในแชทจะหายไปเมื่อจบเซสชัน แต่คำสั่งในไฟล์จะถูกโหลดในเซสชันใหม่ และยังคงอยู่หลังใช้ /compact

ขั้นตอนที่ 2: คัดลอกคำสั่งจาก Apidog

อย่าเดา <scenario_id> หรือ <env_id> เอง ให้เปิด test scenario ใน Apidog แล้วทำตามขั้นตอนนี้:

  1. เปิด scenario ที่ต้องการรัน
  2. ไปที่แท็บ CI/CD
  3. คัดลอกคำสั่ง apidog run ... ที่ Apidog สร้างให้
  4. วาง scenario ID และ environment ID ลงใน CLAUDE.md

คำสั่งจะมีรูปแบบประมาณนี้:

apidog run -t <scenario_id> -e <env_id> -r cli
Enter fullscreen mode Exit fullscreen mode

ใช้ reporter -r cli เพื่อให้ผลลัพธ์แต่ละขั้นตอนและสรุปแสดงในเทอร์มินัล Claude Code จะอ่านเอาต์พุตนี้เพื่อตัดสินใจว่าควรแก้ไขอะไรต่อ

ดูรายละเอียด flags เพิ่มเติมได้จาก คู่มือ Apidog CLI ฉบับสมบูรณ์ และ การอ้างอิงคำสั่ง apidog run

ขั้นตอนที่ 3: ให้ Claude Code รัน API test

เริ่ม Claude Code จาก root ของรีโพสิทอรี:

claude
Enter fullscreen mode Exit fullscreen mode

เมื่อ Claude Code โหลด CLAUDE.md แล้ว คุณสามารถสั่งงานแบบตรงไปตรงมาได้ เช่น:

แก้ไข checkout handler แล้วรัน Apidog scenario เพื่อตรวจสอบ API
Enter fullscreen mode Exit fullscreen mode

หรือ:

รัน API test ที่กำหนดใน CLAUDE.md และแสดง exit code
Enter fullscreen mode Exit fullscreen mode

Claude Code ควรเรียกคำสั่ง apidog run ตามที่ระบุไว้ในไฟล์

ตั้งค่า permissions สำหรับ apidog run

ในโหมดปกติ Claude Code จะขออนุมัติก่อนรันคำสั่งเชลล์ที่ยังไม่เคยได้รับอนุญาต อนุมัติคำสั่ง apidog run เมื่อมี prompt ปรากฏ

หากต้องการลด prompt สำหรับคำสั่งที่เชื่อถือได้ ให้ทำอย่างใดอย่างหนึ่ง:

  • รัน /permissions ภายใน Claude Code
  • เพิ่มกฎอนุญาตสำหรับ Bash(apidog run *) ใน .claude/settings.json

ตัวอย่าง:

{
  "permissions": {
    "allow": [
      "Bash(apidog run *)"
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

การอนุญาตนี้เหมาะกับ scenario แบบอ่านอย่างเดียวที่รันกับ staging

Claude Code มี --dangerously-skip-permissions สำหรับข้าม prompt ทั้งหมด แต่ควรใช้ใน CI มากกว่าการทำงานประจำวันบนเครื่องนักพัฒนา

ขั้นตอนที่ 4: อ่านรายงานและแก้ไขตามผลลัพธ์

เมื่อการทดสอบล้มเหลว -r cli จะส่งรายละเอียดกลับเข้าเทอร์มินัล เช่น:

  • request ที่ถูกรัน
  • assertion ที่ผ่านหรือล้มเหลว
  • status code ที่คาดหวังและค่าจริง
  • ฟิลด์ที่หายไปหรือมีค่าไม่ถูกต้อง

ข้อมูลนี้ช่วยให้ Claude Code ระบุจุดที่ต้องแก้ได้ เช่น response ของ checkout endpoint ส่ง status code ผิด หรือขาดฟิลด์ที่ scenario ตรวจสอบ

หากต้องการรายงานสำหรับเปิดในเบราว์เซอร์หรือส่งให้ทีม ให้เพิ่ม HTML reporter:

apidog run -t <scenario_id> -e <env_id> -r cli,html
Enter fullscreen mode Exit fullscreen mode

Reporter html จะเขียนไฟล์รายงานแบบ self-contained ไปที่:

./apidog-reports
Enter fullscreen mode Exit fullscreen mode

ควรเก็บ cli ไว้เสมอ เพื่อให้ Claude Code ยังได้รับเอาต์พุตในเทอร์มินัล สำหรับ JUnit และ reporter อื่น ๆ ดู รายงานการทดสอบ Apidog CLI

ทำให้ API test อยู่ในวงจรของ Claude Code

หลังตั้งค่าแล้ว วงจรการทำงานจะเปลี่ยนจาก:

  1. Claude Code แก้ไขโค้ด
  2. Claude Code รายงานว่าเสร็จ
  3. มนุษย์ต้องจำไปคลิกทดสอบใน GUI

เป็น:

  1. Claude Code แก้ไข endpoint หรือ handler
  2. Claude Code รัน apidog run
  3. Claude Code อ่าน exit code และ assertion ที่ล้มเหลว
  4. Claude Code แก้ไขโค้ด
  5. Claude Code รันทดสอบอีกครั้งจนกว่าจะผ่าน

ตัวอย่างเช่น Claude Code แก้ไข checkout handler แล้วรัน scenario กับ staging หาก exit code เป็น 0 ก็ไปทำงานต่อได้ หากไม่เป็นศูนย์ มันควรอ่าน assertion ที่ล้มเหลว แก้ไข และรันซ้ำ

คุณยังคงสร้างและดูแล scenario ด้วย UI ของ Apidog แต่ Claude Code รับหน้าที่รัน scenario ระหว่างการพัฒนา ดูแนวทางเพิ่มเติมได้ที่ วิธีใช้เอเจนต์ AI สำหรับการทดสอบ API และ ชุดทดสอบ Apidog AI

ตรวจสอบว่า Claude Code รัน CLI จริง

อย่าเชื่อเพียงข้อความสรุปของเอเจนต์ ให้ตรวจสอบสามจุดต่อไปนี้

1. ตรวจว่ามีคำสั่งถูกรันจริง

Claude Code จะแสดงคำสั่งและเอาต์พุตในบรรทัด มองหาคำสั่งลักษณะนี้:

apidog run -t ... -e ... -r cli
Enter fullscreen mode Exit fullscreen mode

หาก Claude Code บอกว่ารันทดสอบแล้ว แต่ไม่มีคำสั่งหรือ raw output ปรากฏ แปลว่ามันอาจสรุปสิ่งที่ยังไม่ได้ทำ ให้สั่งรันใหม่พร้อมแสดงเอาต์พุตดิบ

2. ตรวจ exit code

ถาม Claude Code โดยตรง:

exit code ของคำสั่ง apidog run คืออะไร?
Enter fullscreen mode Exit fullscreen mode

กติกาคือ:

Exit code ความหมาย
0 ทุก assertion ผ่าน
ไม่ใช่ 0 มี assertion หรือขั้นตอนบางอย่างล้มเหลว

หากข้อความสรุประบุว่า “tests passed” แต่ exit code ไม่ใช่ 0 ให้เชื่อ exit code

3. ตรวจ scenario และ environment ID

หากพบข้อความ scenario not found Claude Code อาจใช้ ID ผิด ให้ตรวจสอบค่าใน -t และ -e เทียบกับ:

  • คำสั่งที่ Apidog สร้างในแท็บ CI/CD
  • ค่าใน CLAUDE.md

ให้ถือว่าคำสั่งที่คัดลอกจาก Apidog และค่าที่จัดเก็บใน CLAUDE.md เป็นแหล่งข้อมูลหลัก

ทางเลือก: เชื่อมต่อ Apidog MCP Server

apidog run จาก CLAUDE.md เพียงพอสำหรับการรัน API test ในวงจรพัฒนา แต่คุณสามารถเชื่อมต่อ MCP เพื่อให้ Claude Code อ่าน API specification ระหว่างเขียนโค้ดได้ด้วย

Claude Code รองรับ Model Context Protocol และเพิ่ม MCP server ได้ด้วย claude mcp add ... หรือคอมมิต .mcp.json ไว้ที่ root ของโปรเจกต์โดยใช้ --scope project

Apidog MCP Server เปิดเผย API specification ผ่าน MCP ทำให้บทบาทแยกกันชัดเจน:

  • Apidog CLI: รัน scenario และตรวจผลการทดสอบ
  • Apidog MCP Server: ให้ schema และข้อมูลจำเพาะ API แก่เอเจนต์ระหว่างเขียนโค้ด

แก้ปัญหาที่พบบ่อย

Claude Code ไม่อ่าน CLAUDE.md

หาก Claude Code รันคำสั่งทั่วไปแทน หรือไม่รันคำสั่งเลย ให้ตรวจสอบว่า:

  1. ชื่อไฟล์เป็น CLAUDE.md ตรงตัว
  2. ไฟล์อยู่ที่ root ของรีโพสิทอรี หรืออยู่ใน parent directory ของตำแหน่งที่เปิด Claude Code
  3. เริ่มเซสชันใหม่หลังแก้ไขไฟล์

รันคำสั่งนี้ใน Claude Code เพื่อตรวจไฟล์ memory ที่โหลดอยู่:

/memory
Enter fullscreen mode Exit fullscreen mode

หาก CLAUDE.md ไม่อยู่ในรายการ Claude Code จะมองไม่เห็นไฟล์นั้น

Claude Code พยายามส่ง access token

หาก Claude Code เพิ่ม --access-token เอง มันอาจเดาจากตัวอย่างสาธารณะ ย้ำใน CLAUDE.md ว่าเครื่องได้รับการยืนยันสิทธิ์ผ่าน apidog login แล้ว และห้ามใส่ token ลงในไฟล์กฎ

ดูขั้นตอนยืนยันสิทธิ์แบบครั้งเดียวได้จาก การยืนยันสิทธิ์ Apidog CLI

Claude Code สร้าง flag ที่ไม่มีอยู่จริง

หากเจอข้อผิดพลาด unknown option ให้สั่ง Claude Code รัน:

apidog run --help
Enter fullscreen mode Exit fullscreen mode

จากนั้นใช้ flag ที่แสดงจาก CLI เวอร์ชันที่ติดตั้งอยู่จริง

Claude Code รายงานว่าผ่าน แต่คำสั่งล้มเหลว

ให้ยึด exit code เป็นหลักเสมอ ไม่ใช่ข้อความสรุปของเอเจนต์

กำหนดกฎนี้ไว้ใน CLAUDE.md และขอให้ Claude Code รายงานทั้ง:

  • คำสั่งที่รัน
  • raw output
  • exit code
  • assertion ที่ล้มเหลว หากมี

สรุป

ติดตั้ง apidog-cli เพียงครั้งเดียว เพิ่มคำสั่ง apidog run ลงใน CLAUDE.md และให้ Claude Code ใช้ API test เป็นส่วนหนึ่งของวงจรแก้ไขโค้ดตามปกติ

เมื่อ Claude Code แก้ไข endpoint มันสามารถรัน scenario, ตรวจ assertion, อ่าน exit code และแก้ไขต่อได้ทันที แทนที่จะรอให้มีคนเปิด GUI เพื่อกดทดสอบภายหลัง

สร้าง scenario ใน Apidog, คัดลอกคำสั่งจากแท็บ CI/CD ลงใน CLAUDE.md, แล้วให้ Claude Code เรียกใช้ในการเปลี่ยนแปลงครั้งถัดไป

หากต้องการนำคำสั่งเดียวกันไปใช้ใน pipeline โดยไม่มี Claude Code ดู Apidog CLI ใน GitHub Actions ซึ่งครอบคลุม secrets, reporters และ exit-code gating

Top comments (0)