DEV Community

Cover image for อัปเดต APIDOG พฤษภาคม: ย้าย Postman ฉลาดขึ้น, ควบคุมความปลอดภัย Auth, และ Non-Root Runner
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

อัปเดต APIDOG พฤษภาคม: ย้าย Postman ฉลาดขึ้น, ควบคุมความปลอดภัย Auth, และ Non-Root Runner

⭐ พฤษภาคมนี้เป็นเวอร์ชันที่เน้นการใช้งานจริง: ลดงานตั้งค่าหลังย้ายระบบ, เพิ่มการควบคุมความปลอดภัยด้าน Auth สำหรับองค์กร และทำให้เอาต์พุตสำหรับดีบัก API ใช้งานต่อได้ง่ายขึ้น

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

เมื่อทีมย้ายงาน API ระหว่างเครื่องมือ ปัญหามักไม่ได้จบที่การนำเข้าไฟล์ แต่เกิดหลังจากนั้น: ต้องแก้ Base URL, ผูก environment, เติมข้อมูล Auth ในโค้ดที่ export และปรับ CI runner ให้เข้ากับนโยบาย infrastructure ที่เข้มงวดขึ้น

ในเดือนนี้ Apidog ปรับปรุงเวิร์กโฟลว์เหล่านี้โดยตรง: การนำเข้าจาก Postman แมป Base URL ได้ฉลาดขึ้น, Enterprise Policies เริ่มจาก Auth Security, โหมด Spec-First ทดลองได้โดยยังไม่ต้องผูก Git, Runner ทำงานแบบ non-root ได้, โค้ดคำขอที่สร้างขึ้นรวมข้อมูล Auth ได้ และมีการแก้ปัญหาด้านการแชร์คำขอ การซิงค์ test และ Mock data หลายรายการ

⭐ การอัปเดตใหม่

📦 นำเข้าข้อมูล Postman พร้อมการแมป Base URL ที่ฉลาดขึ้น

เมื่อ Apidog ตรวจจับ Base URL ที่ใช้ร่วมกันระหว่างการนำเข้า Postman ได้อย่างน่าเชื่อถือ ระบบจะใส่ค่านั้นลงในช่อง Base URL ของโมดูลที่ตรงกันในแต่ละ environment ให้โดยอัตโนมัติ

นำเข้าข้อมูล Postman ด้วยการแมป Base URL

สำหรับทีมที่ย้ายจาก Postman ขั้นตอนหลัง import จะสั้นลง เพราะคำขอมีโอกาสพร้อมรันทันทีมากขึ้น โดยไม่ต้องไล่ตรวจ URL หรือกรอก Base URL ของแต่ละ environment ด้วยมือ

ก่อนหน้านี้ ตอนนี้
นำเข้าคอลเลกชันจาก Postman นำเข้าไฟล์ Postman หรือใช้เส้นทางนำเข้าผ่าน Postman API
ตรวจ URL ของคำขอด้วยตนเอง Apidog ตรวจจับ Base URL ที่ใช้ร่วมกันเมื่อทำได้อย่างน่าเชื่อถือ
กรอก Base URL ของโมดูลสำหรับแต่ละ environment ค่าที่ตรวจพบถูกวางในช่อง Base URL ของโมดูลที่ตรงกัน
แก้คำขอที่เสียก่อนทดสอบ คำขอที่นำเข้าเรียกใช้งานได้ง่ายขึ้นทันที

แนวทางใช้งาน:

  1. Export collection หรือ environment จาก Postman
  2. Import เข้า Apidog ด้วยไฟล์ local หรือผ่าน Postman API
  3. ตรวจสอบว่า Base URL ของโมดูลถูกเติมใน environment ที่เกี่ยวข้อง
  4. รันทดสอบคำขอที่นำเข้าเพื่อตรวจว่าตัวแปรและ path ทำงานถูกต้อง

ตัวอย่างโครงสร้างที่ Apidog สามารถช่วยลดงานปรับแต่งได้:

{{baseUrl}}/users
{{baseUrl}}/orders
{{baseUrl}}/payments
Enter fullscreen mode Exit fullscreen mode

หาก URL มี base address หรือตัวแปรที่จดจำได้ชัดเจน Apidog จะพยายามดึง Base URL ที่ใช้งานได้และนำไปวางในตำแหน่งที่กำหนดค่า Base URL ของโมดูลไว้


🛡️ Enterprise Policies เริ่มต้นด้วยการควบคุมความปลอดภัยด้าน Auth

Apidog เปิดตัว Enterprise Policies เป็นกรอบกำกับดูแลสำหรับการควบคุมความปลอดภัยระดับองค์กร โดยเริ่มจาก Auth Security

Auth Security ช่วยลดความเสี่ยงจากการเปิดเผย credential ในการตั้งค่า Auth ผู้ดูแลระบบองค์กรสามารถกำหนดกฎสำหรับฟิลด์ Auth ที่ละเอียดอ่อนได้ เช่น สนับสนุนหรือบังคับให้เก็บ credential เป็น variables หรือ Vault Secrets แทนการใส่ raw value โดยตรง

แนวทางที่ควรใช้:

ไม่แนะนำ:
Authorization: Bearer eyJhbGciOi...

แนะนำ:
Authorization: Bearer {{access_token}}

หรือ:
Authorization: Bearer {{vault.api_token}}
Enter fullscreen mode Exit fullscreen mode

สำหรับ Vault Secrets ทีมยังสามารถป้องกันการแสดงค่า plain text ใน UI ได้ สมาชิกยังอ้างอิง Secret เพื่อรันคำขอได้ แต่ค่าจริงจะไม่ถูกเปิดเผยโดยไม่ตั้งใจผ่านไอคอนรูปตาหรือระหว่างการแชร์หน้าจอ

🔒 เหมาะสำหรับทีมองค์กรที่ต้องควบคุม credential โดยไม่ทำให้เวิร์กโฟลว์ดีบัก API ซับซ้อนเกินจำเป็น


📝 โหมด Spec-First ไม่จำเป็นต้องตั้งค่า Git ก่อนอีกต่อไป

โหมด Spec-First ทดลองใช้ง่ายขึ้นแล้ว คุณสามารถสร้างโปรเจกต์ Spec-First ได้โดยไม่ต้องผูก Git repository ก่อน จากนั้นค่อยเพิ่มหรือนำเข้าไฟล์ OpenAPI เมื่อพร้อม

โหมด Spec-First ไม่ต้องตั้งค่า Git ก่อน

เวิร์กโฟลว์ที่แนะนำ:

  1. สร้างโปรเจกต์แบบ Spec-First
  2. เพิ่มหรือนำเข้าไฟล์ OpenAPI
  3. ตรวจโครงสร้าง endpoint, schema และ response
  4. ทดลอง workflow ร่วมกับทีม
  5. เมื่อโครงสร้างนิ่งแล้ว ค่อยผูก Git repository

ตัวอย่างไฟล์ OpenAPI ขั้นต้นที่ใช้เริ่มต้นได้:

openapi: 3.0.3
info:
  title: Example API
  version: 1.0.0
paths:
  /users:
    get:
      summary: List users
      responses:
        "200":
          description: OK
Enter fullscreen mode Exit fullscreen mode

ℹ️ เหมาะสำหรับทีมที่กำลังประเมินเวิร์กโฟลว์แบบ Spec-First หรือเก็บ feedback ก่อนกำหนดโครงสร้าง repository ให้เป็นมาตรฐาน


🔒 Runner สามารถทำงานในฐานะผู้ใช้ที่ไม่ใช่ root ได้แล้ว

Runner รองรับการทำงานในฐานะผู้ใช้ที่ไม่ใช่ root แล้ว

สิ่งนี้สำคัญกับ server, container และ CI/CD environment ที่นโยบายไม่แนะนำหรือบล็อกการรัน process ด้วย root ทีมจึงปรับใช้ Runner ด้วยสิทธิ์ที่จำกัดลงได้ โดยยังคงรักษา workflow automation เดิม

ตัวอย่างแนวคิดการรันใน container แบบ non-root:

RUN adduser --disabled-password --gecos "" runner
USER runner
Enter fullscreen mode Exit fullscreen mode

หรือใน CI/CD ให้ตรวจสอบว่า job ไม่ได้รันด้วยสิทธิ์ root โดยไม่จำเป็น และ permission ของไฟล์ที่ Runner ต้องอ่าน/เขียนถูกตั้งค่าให้ user นั้นเข้าถึงได้

✅ การอัปเดตนี้ช่วยให้การ deploy Runner สอดคล้องกับข้อกำหนดความปลอดภัยภายใน โดยไม่ต้องเปลี่ยน workflow การทดสอบทั้งหมด


🔐 โค้ดคำขอที่สร้างขึ้นสามารถรวมข้อมูล Auth ได้

เมื่อสร้างโค้ดคำขอจาก API ใน Apidog ระบบสามารถรวมข้อมูล Auth ที่กำหนดค่าไว้แล้วเข้าไปในตัวอย่างโค้ดได้

โค้ดคำขอที่สร้างขึ้นรวมข้อมูล Auth

ผลลัพธ์คือ snippet ที่ใกล้เคียงกับโค้ดที่รันได้จริงมากขึ้น ไม่ต้องเติม token, header หรือ auth parameter ด้วยมือหลัง export

ตัวอย่างลักษณะโค้ดที่นำไปใช้ต่อได้ง่ายขึ้น:

curl --request GET 'https://api.example.com/users' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json'
Enter fullscreen mode Exit fullscreen mode

ใช้ได้ดีเมื่อคุณต้องการ:

  • ตรวจสอบ API call อย่างรวดเร็ว
  • แชร์ตัวอย่างที่รันซ้ำได้กับทีม
  • วางคำขอลงใน terminal หรือ context ดีบักอื่น
  • ลดความคลาดเคลื่อนระหว่าง request ในแอปกับโค้ดที่ export

✅ การปรับปรุงประสิทธิภาพ

🧩 การรันสคริปต์ CLI ถูกจำกัดมากขึ้น

เพื่อลดความเสี่ยงในการรันสคริปต์ ตอนนี้ CLI อนุญาตให้เรียกใช้สคริปต์จากไดเรกทอรี External Programs เท่านั้น

สิ่งที่ควรตรวจสอบ:

  1. สคริปต์ CLI ที่ใช้อยู่ถูกวางใน path ที่อนุญาตหรือไม่
  2. pipeline หรือ automation อ้าง path เดิมที่อยู่นอก External Programs หรือไม่
  3. permission ของไฟล์สคริปต์ถูกต้องหรือไม่

การจำกัด scope นี้ช่วยลดการรันสคริปต์โดยไม่ตั้งใจหรือกว้างเกินจำเป็น แต่ยังคงรองรับ workflow ที่ตั้งใจให้ใช้ external program ตามเดิม


📋 คำสั่ง cURL ที่คัดลอกจะรวมการกำหนดค่าคำขอมากขึ้น

เมื่อคัดลอก cURL จาก Apidog คำสั่งที่สร้างขึ้นจะรวม Header และ Body ที่กำหนดค่าไว้ได้ครบถ้วนและน่าเชื่อถือยิ่งขึ้น

ตัวอย่าง:

curl --request POST 'https://api.example.com/orders' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer {{access_token}}' \
  --data-raw '{
    "productId": "sku_123",
    "quantity": 2
  }'
Enter fullscreen mode Exit fullscreen mode

เหมาะสำหรับ:

  • ดีบักใน terminal
  • แชร์ request ที่ reproduce ได้
  • แนบคำสั่งใน issue หรือ troubleshooting note
  • ตรวจสอบว่า request ที่ส่งจริงตรงกับค่าที่ตั้งไว้ใน Apidog

🧪 ขั้นตอนการทดสอบอัตโนมัติซิงค์ถูกต้องขึ้นหลังเปลี่ยนเมธอด

เมื่อ endpoint เปลี่ยนเมธอดจาก GET เป็น POST, PUT หรือเมธอดอื่น ขั้นตอนการทดสอบอัตโนมัติที่เกี่ยวข้องจะซิงค์ค่าที่อัปเดตได้แม่นยำขึ้น

ตัวอย่างสถานการณ์:

เดิม:
GET /users

เปลี่ยนเป็น:
POST /users
Enter fullscreen mode Exit fullscreen mode

หลังอัปเดต endpoint แล้ว ขั้นตอน test ที่เกี่ยวข้องจะลดโอกาสใช้ข้อมูลเมธอดเก่า ทำให้ผลทดสอบอัตโนมัติเชื่อถือได้มากขึ้นหลังแก้ API definition


🎲 การสร้าง Mock Data น่าเชื่อถือขึ้น

การเผยแพร่ครั้งนี้แก้ปัญหาการสร้าง Mock data หลายรายการ รวมถึง:

  • กฎตัวคูณ
  • นิพจน์ arrayElements
  • การสร้างแบบกลุ่มเมื่อใช้ JavaScript generation และ Mock generation ร่วมกัน

สำหรับการทำ frontend-backend integration, การสร้างข้อมูลทดสอบจำนวนมาก และ automated testing เอาต์พุต Mock ควรเสถียรขึ้นและใกล้เคียงกับกฎที่กำหนดไว้มากขึ้น

ตัวอย่างแนวคิดที่ควรตรวจหลังอัปเดต:

arrayElements min/max
จำนวนรายการที่สร้างจาก multiplier
ผลลัพธ์จาก JavaScript generation + Mock generation
Enter fullscreen mode Exit fullscreen mode

🐞 การแก้ไขข้อผิดพลาดและการปรับปรุงเล็กน้อย

รายการแก้ไขในเดือนนี้:

  • แก้ปัญหาที่พารามิเตอร์คำขอในเอกสารที่แชร์ไม่แสดงตัวอย่างเริ่มต้น
  • แก้ปัญหาที่การ export โปรเจกต์ที่มีเฉพาะเอกสาร Markdown และไม่มี endpoint อาจล้มเหลว
  • แก้ปัญหา Mock data หลายรายการ รวมถึง batch generation เมื่อใช้ JavaScript generation และ Mock generation ร่วมกัน, กฎตัวคูณตัวเลข และนิพจน์ arrayElements min/max
  • แก้ปัญหาที่ permalink ของ project overview อาจคืนค่า error 500 หลังเปิดลิงก์จากหลายโปรเจกต์ต่อเนื่องกัน
  • แก้ปัญหาที่ UI อาจแสดง Error: Cannot read properties of null (reading 'nullable') ในบางกรณี
  • แก้ปัญหา contrast ที่ทำให้ชื่อตัวอย่างที่เลือกในเอกสารที่แชร์อ่านยากในธีมสว่าง
  • แก้ปัญหาที่ผู้ใช้ Windows ไม่สามารถใช้ AI Agent Debugger ได้ตามปกติ
  • แก้ปัญหาที่ฟิลด์ body แบบ form-data ที่มีไฟล์อัปโหลดหลายไฟล์แสดงเพียงไฟล์เดียวหลังเปิดแก้ไขแบบกลุ่มและบันทึก

🌟 สิ่งนี้หมายความว่าอย่างไรสำหรับ workflow API

ด้านที่ปรับปรุง สิ่งที่เปลี่ยน ผลต่อทีม
การย้ายจาก Postman Base URL ที่ใช้ร่วมกันถูกแมปเมื่อ Apidog ตรวจจับได้อย่างน่าเชื่อถือ ลดงาน cleanup หลัง import collection และ environment
การ deploy Runner Runner ทำงานแบบ non-root ได้ เข้ากับนโยบาย server, container และ CI/CD ที่เข้มงวดขึ้น
ความปลอดภัยองค์กร Enterprise Policies เริ่มจาก Auth Security ลดการเปิดเผย raw credential ใน workflow Auth
Spec-First สร้างโปรเจกต์ได้โดยยังไม่ต้องผูก Git ทดลอง workflow ที่ใช้ OpenAPI ก่อนจัดการ repository
การแชร์คำขอ Generated code และ cURL รวมค่าคำขอมากขึ้น ตัวอย่างรันซ้ำ แชร์ และดีบักง่ายขึ้น
Testing และ Mocking Test step ซิงค์แม่นขึ้น และ Mock generation เสถียรขึ้น ลดเวลาตามแก้ config หรือ test data ที่คลาดเคลื่อน

สรุปคืออัปเดตนี้ไม่ได้เพิ่มความซับซ้อน แต่ลดจุดเสียดทานหลังการตั้งค่า: แก้ด้วยมือน้อยลง, ค่าเริ่มต้นปลอดภัยขึ้น และเอาต์พุตใกล้เคียงกับสิ่งที่กำหนดไว้จริงมากขึ้น


💬 เข้าร่วมการสนทนา

เชื่อมต่อกับวิศวกร API คนอื่นๆ และทีม Apidog:

  • เข้าร่วมชุมชน Discord ของเราเพื่อพูดคุยและรับการสนับสนุนแบบเรียลไทม์
  • เข้าร่วมชุมชน Slack ของเราสำหรับการสนทนาทางเทคนิค
  • ติดตามเราบน X (Twitter) สำหรับการอัปเดตล่าสุด

ป.ล. สำหรับรายละเอียดทั้งหมดของการอัปเดต โปรดดู Apidog Changelog

ขอแสดงความนับถือ,

ทีมงาน Apidog

Top comments (0)