เงื่อนไข Swagger และ OpenAPI

May 03 2023
ขณะที่ฉันเขียนบทความก่อนหน้านี้ซึ่งไม่เคยเผยแพร่ ฉันตระหนักว่าหลายคนไม่เข้าใจความแตกต่างระหว่างคำว่า Swagger และ OpenAPI (OAS) ผู้คนใช้ทั้งสองคำแทนกันได้

ขณะที่ฉันเขียนบทความก่อนหน้านี้ซึ่งไม่เคยเผยแพร่ ฉันตระหนักว่าหลายคนไม่เข้าใจความแตกต่างระหว่างคำว่าSwaggerและOpenAPI (OAS ) ผู้คนใช้ทั้งสองคำแทนกันได้ ฉันไม่โทษพวกเขาเพราะฉันก็สงสัยเหมือนกัน

Swagger ช่วยให้คุณสามารถอธิบายโครงสร้างของ API เพื่อให้เครื่องสามารถอ่านได้
— สแวกเกอร์ไอโอ

หากคุณลองใช้ Google SwaggerหรือOpenAPIในกรณีส่วนใหญ่ คุณจะไปที่SwaggerIOซึ่งเป็นเว็บไซต์อย่างเป็นทางการของ Swagger หากคุณถามฉัน เว็บไซต์ได้ปิดบังจุดประสงค์ของ Swagger ตั้งแต่วันแรก ทั้งที่ไม่ได้ตั้งใจ ข้อมูลไม่ได้ขาดหายไป เพียงแต่ไม่ได้นำเสนอในลักษณะที่ชัดเจนและรัดกุม

ข้อมูลจำเพาะ OpenAPI (OAS) กำหนดอินเทอร์เฟซมาตรฐานที่ไม่เชื่อเรื่องภาษาของ RESTful API ซึ่งช่วยให้ทั้งมนุษย์และคอมพิวเตอร์ค้นพบและเข้าใจความสามารถของบริการโดยไม่ต้องเข้าถึงซอร์สโค้ด เอกสารประกอบ หรือผ่านการตรวจสอบการรับส่งข้อมูลเครือข่าย
— สแวกเกอร์ไอโอ

ปัจจุบันมีบทความมากมายในหัวข้อนี้ ดังนั้นจึงง่ายกว่ามากที่จะเข้าใจถึงความแตกต่าง แต่ก็ยังเป็นไปได้ที่จะพบงานเขียนที่ผสมผสานคำศัพท์เข้าด้วยกัน SwaggerIOกำลังส่งเสริม Swagger เป็นชุดเครื่องมือและ OpenAPI เป็นข้อกำหนด เราสามารถพูดได้ว่าSwagger ใช้เพื่อสร้างข้อกำหนด OpenAPI โดยพื้นฐานแล้วข้อความนี้ไม่ผิด แต่ก็ไม่ใช่ความจริงทั้งหมด

SwaggerIO ผสมคำ Swagger กับ OpenAPI

การใช้ข้อกำหนด

โดยปกติแล้ว นักพัฒนาจะใช้คำว่าSwaggerในบริบทอย่างน้อยสองบริบท:

  • เพื่ออธิบายชุดเครื่องมือสำหรับการนำข้อกำหนดไปใช้ เครื่องมือบางอย่าง ได้แก่ Swagger Editor, Swagger UI, Swagger Codegen เป็นต้น เป็นระบบนิเวศ
  • เพื่ออธิบายสเปคของเวอร์ชั่น 2.*.*

นักพัฒนาใช้คำว่าOpenAPI Specification 3เป็นส่วนใหญ่ ในบริบทเดียว:

  • เพื่ออธิบายสเปคของเวอร์ชั่น 3.*.*. ชุมชนหมายถึง OAS, OAS3, OpenAPI Spec, OpenAPI 3 Specification เป็นต้น พวกเขาใช้OpenAPI 3เป็นผู้สืบทอดของSwagger Specification 2

Swagger และ OpenAPI เป็นเพื่อนสนิทด้วยเหตุผล ประวัติศาสตร์เป็นส่วนประกอบสำคัญของที่นี่

บริษัท SmartBear รักษา Swagger ในเดือนพฤศจิกายน 2015 Linux Foundation ประกาศว่าพวกเขากำลังสร้างองค์กรใหม่ ร่วมกับ SmartBear, Google, Microsoft, Paypal และบริษัทอื่นๆ อีกสองสามแห่ง ในชื่อ OpenAPI Initiative ภารกิจหลักของความคิดริเริ่มคือการขยายข้อกำหนดของ Swagger

ไม่กี่เดือนต่อมา ความคิดริเริ่มเปลี่ยนชื่อ Swagger เป็น OpenAPI specification ความคิดริเริ่มโคลนรหัสไปยังพื้นที่เก็บข้อมูลใหม่ จากจุดนั้น บุคคลใช้ทั้งสองคำในบริบทต่างๆ

คำสุดท้าย

Swaggerเคยเป็นข้อมูลจำเพาะและชุดเครื่องมือแบบ all-in-one วันนี้Swaggerเป็นชุดเครื่องมือ OpenAPIเป็นข้อกำหนด แค่นั้นแหละ.

เป็นเรื่องดีที่ทราบความแตกต่าง ไม่ว่าคุณจะใช้คำใด อีกฝ่ายจะเข้าใจคุณ - ท้ายที่สุดแล้ว นั่นคือสิ่งเดียวที่สำคัญ