คำแนะนำเกี่ยวกับ JSON Schema

JSON สคีมา

ก่อนที่เราจะเข้าสู่ JSON Schema สิ่งสำคัญคือต้องทราบความแตกต่างระหว่าง JSON และ JSON Schema

JSON

JSON ย่อมาจาก JavaScript Object Notation และเป็นรูปแบบข้อมูลที่ไม่ขึ้นกับภาษาที่ API ใช้ในการส่งคำขอและคำตอบ JSON นั้นง่ายต่อการอ่านและเขียนสำหรับทั้งคนและเครื่องจักร JSON เป็นรูปแบบข้อความที่ไม่ผูกกับภาษา (ไม่ขึ้นกับภาษา)

JSON สคีมา

JSON Schema เป็นเครื่องมือที่มีประโยชน์สำหรับการตรวจสอบโครงสร้างข้อมูล JSON หากต้องการระบุโครงสร้างของ JSON ให้ใช้รูปแบบตาม JSON จุดประสงค์คือเพื่อให้แน่ใจว่าข้อมูล JSON เป็นที่ยอมรับ ข้อกำหนดสำหรับข้อมูล JSON ของแอปพลิเคชันของเราอาจถูกกำหนดโดยใช้สคีมา

มีสามส่วนหลักในข้อกำหนด JSON Schema:

JSON ไฮเปอร์สคีมา:

JSON Hyper-Schema เป็นภาษา JSON Schema ที่อาจใช้เพื่อติดป้ายกำกับเอกสาร JSON ด้วยไฮเปอร์ลิงก์และคำแนะนำสำหรับการประมวลผลและเปลี่ยนแปลงทรัพยากร JSON ภายนอกผ่านสภาพแวดล้อมแบบข้อความ เช่น HTTP คลิก โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ JSON Hyper-Schema

แกนสคีมา JSON:

เป็นชุดของกฎสำหรับการติดฉลากและตรวจสอบความถูกต้องของเอกสาร JSON 

แกนสคีมา JSON:

  • อธิบายรูปแบบข้อมูลที่คุณมีในปัจจุบัน 
  • ตรวจสอบข้อมูลที่สามารถใช้ในการทดสอบอัตโนมัติ 
  • รับประกันความถูกต้องของข้อมูลที่ได้รับจากลูกค้า  
  • ให้เอกสารที่สามารถอ่านได้สำหรับทั้งมนุษย์และเครื่องจักร 

การตรวจสอบ JSON Schema:

การตรวจสอบตาม JSON Schema กำหนดข้อจำกัดเกี่ยวกับโครงสร้างของข้อมูลอินสแตนซ์ หลังจากนั้นคำหลักใด ๆ ที่ไม่ยืนยัน ข้อมูลเช่น ข้อมูลเมตาเชิงพรรณนาและตัวบ่งชี้การใช้งาน จะถูกเพิ่มในตำแหน่งอินสแตนซ์ที่ตรงตามข้อจำกัดที่ประกาศไว้ทั้งหมด 

เครื่องมือ JSON Schema Validator ของ Newtonsoft เป็นเครื่องมือที่คุณสามารถใช้โดยตรงในเบราว์เซอร์ของคุณได้ฟรี คุณสามารถใช้เครื่องมือนี้เพื่อทดสอบโครงสร้างของสคีมา JSON ของคุณ หน้านี้มีการควบคุมและคำอธิบายเพื่อให้คุณเริ่มต้นได้ ด้วยวิธีนี้ คุณสามารถดูวิธีการปรับปรุงโครงสร้าง JSON ของคุณได้อย่างง่ายดาย

เราสามารถตรวจสอบ JSON Object ของเราโดยใช้ JSON Schema Validation Tool:

ข้อผิดพลาดการตรวจสอบ JSON ฟรี

เรามีการตรวจสอบอายุ (ขั้นต่ำ = 20 และสูงสุด = 40) ดังแสดงในรูปด้านบน ไม่พบข้อผิดพลาด

เครื่องมือตรวจสอบ JSON ที่มีข้อผิดพลาด

มันแสดงข้อผิดพลาดหากป้อนการตรวจสอบอายุไม่ถูกต้อง

การสร้าง JSON Schema

ลองดูตัวอย่าง JSON Schema เพื่อดูว่าเรากำลังพูดถึงอะไร ออบเจกต์ JSON พื้นฐานที่อธิบายแคตตาล็อกผลิตภัณฑ์มีดังนี้:

ตัวอย่าง JSON

JSON Schema ของมันอาจเขียนได้ดังนี้:

ผลลัพธ์สคีมา JSON

JSON Schema เป็นเอกสาร JSON และเอกสารนั้นต้องเป็นวัตถุ คำหลักคือสมาชิก/คุณลักษณะของวัตถุที่ระบุโดย JSON Schema “คำหลัก” ใน JSON Schema หมายถึงส่วน “คีย์” ของชุดคีย์/ค่าในออบเจ็กต์ การเขียน JSON Schema เกี่ยวข้องกับการจับคู่ "คำหลัก" เฉพาะกับค่าภายในวัตถุเป็นส่วนใหญ่ 

มาดูคำหลักที่เราใช้ในตัวอย่างให้ละเอียดยิ่งขึ้น: 

สคีมา JSON ที่สอดคล้องกับสคีมาของทรัพยากรจะถูกเขียนโดยแอตทริบิวต์นี้ สคีมานี้เขียนขึ้นตามมาตรฐานร่าง v4 ตามที่ระบุโดย "$ schema" คำสำคัญ. วิธีนี้จะป้องกันไม่ให้สคีมาของคุณถอยกลับไปเป็นเวอร์ชันปัจจุบัน ซึ่งอาจเข้ากันได้กับเวอร์ชันเก่าหรือไม่ก็ได้

"ชื่อเรื่อง"และ"ลักษณะ” คำหลักเป็นเพียงคำอธิบาย พวกเขาไม่ได้กำหนดข้อจำกัดใด ๆ กับข้อมูลที่กำลังตรวจสอบ คำหลักสองคำนี้อธิบายวัตถุประสงค์ของสคีมา: คำหลักนี้อธิบายถึงผลิตภัณฑ์

"ชนิด” คำหลักกำหนดเงื่อนไขขอบเขตแรกของข้อมูล JSON ของเรา ต้องเป็นวัตถุ JSON หากเราไม่ตั้งค่าประเภทสำหรับสกีมาทั้งหมด รหัสจะไม่ทำงาน ประเภททั่วไปบางประเภท ได้แก่ "number" "Boolean" "integer" "null" "object" "array" "string"

 

JSON Schema รองรับโดยไลบรารีต่อไปนี้:

 

ภาษา

ห้องสมุด

C

WJองค์ประกอบ

หลาม

จชอน

PHP

บทวิจารณ์ Json Schema

JavaScript

อัจวี

Go

gojsonschema

คอตลิน

เครื่องมือตรวจสอบความถูกต้องของ Medeia

ทับทิม

JSONSchemer

JSON (ไวยากรณ์)

มาดูไวยากรณ์พื้นฐานของ JSON สั้นๆ กัน ไวยากรณ์ JSON เป็นชุดย่อยของไวยากรณ์ JavaScript ที่มีองค์ประกอบต่อไปนี้:

  • ใช้คู่ชื่อ/ค่าที่แสดงถึงข้อมูล
  • ออบเจ็กต์อยู่ในวงเล็บปีกกา และแต่ละชื่อนำหน้าด้วย ':' (ทวิภาค) โดยมีคู่ค่าคั่นด้วย “,” (ลูกน้ำ)
  • ค่าจะถูกคั่นด้วย “,” (ลูกน้ำ) และอาร์เรย์จะอยู่ในวงเล็บเหลี่ยม
ตัวอย่างไวยากรณ์ JSON

JSON รองรับโครงสร้างข้อมูลสองโครงสร้างต่อไปนี้:

  • รายการลำดับของค่า: อาจเป็นอาร์เรย์ รายการ หรือเวกเตอร์ก็ได้
  • ชุดชื่อ/คู่ค่า: ภาษาคอมพิวเตอร์ที่แตกต่างกันรองรับโครงสร้างข้อมูลนี้

 

JSON (วัตถุ)

สคีมา JSON คือออบเจ็กต์ JSON ที่สรุปประเภทและโครงสร้างของออบเจ็กต์ JSON ที่แตกต่างกัน การแสดงออกของวัตถุ JavaScript สามารถแสดงวัตถุ JSON ในสภาพแวดล้อมรันไทม์ของ JavaScript ตัวอย่างของออบเจกต์สคีมาที่ถูกต้องมีดังนี้:

schema

การแข่งขัน

{}

ค่าใดๆ

{ ประเภท: 'วัตถุ' }

วัตถุ JavaScript

{ ประเภท: 'หมายเลข' }

หมายเลข JavaScript

{ ประเภท: 'สตริง'}

สตริง JavaScript

เช่น:

สร้างวัตถุใหม่ที่ว่างเปล่า:

วาร์ JSON_Obj = {};

การสร้างวัตถุใหม่:

var JSON_Obj = วัตถุใหม่ ()

JSON (เปรียบเทียบกับ XML)

JSON และ XML เป็นรูปแบบที่มนุษย์อ่านได้โดยไม่ขึ้นกับภาษา ในสถานการณ์จริง พวกมันสามารถสร้าง อ่าน และถอดรหัสได้ ตามเกณฑ์ต่อไปนี้ เราอาจเปรียบเทียบ JSON กับ XML

ความซับซ้อน

เนื่องจาก XML มีความซับซ้อนมากกว่า JSON โปรแกรมเมอร์จึงเลือกใช้ JSON

การใช้อาร์เรย์

XML ใช้เพื่อแสดงข้อมูลที่มีโครงสร้าง อย่างไรก็ตาม XML ไม่รองรับอาร์เรย์ แต่ JSON รองรับ

วจีวิภาค

JSON ถูกตีความโดยใช้ฟังก์ชัน eval ของ JavaScript eval ส่งคืนวัตถุที่อธิบายไว้เมื่อใช้กับ JSON

 

ตัวอย่าง:

 

JSON

XML

{

   “บริษัท”: เฟอร์รารี่,

   “ชื่อ”: “จีทีเอส”,

   “ราคา”: 404000

}

 

 

เฟอร์รารี่ 

 

จีทีเอส 

 

404000 

 

ข้อดีของสคีมา JSON

JSON ได้รับการออกแบบให้เบี่ยงเบนในภาษาที่มนุษย์และเครื่องอ่านได้ อย่างไรก็ตามหากไม่มีการปรับแต่งบางอย่างก็ไม่สามารถเป็นเช่นนั้นได้ JSON Schema มีข้อได้เปรียบในการทำให้ JSON เข้าใจได้มากขึ้นสำหรับทั้งเครื่องจักรและมนุษย์

การใช้ JSON Schema ยังช่วยขจัดความจำเป็นในการอัปเดตฝั่งไคลเอ็นต์หลายรายการอีกด้วย การสร้างรายการโค้ด HTML ทั่วไปแล้วนำไปใช้ในฝั่งไคลเอ็นต์เป็นวิธีการทั่วไปแต่ไม่ถูกต้องในการสร้างฝั่งไคลเอ็นต์ API แอพ อย่างไรก็ตาม นี่ไม่ใช่กลยุทธ์ที่ดีที่สุดเนื่องจากการเปลี่ยนแปลงในฝั่งเซิร์ฟเวอร์อาจทำให้การทำงานบางอย่างทำงานผิดปกติ

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

สคีมา JSON รองรับเบราว์เซอร์ที่หลากหลายและ ระบบปฏิบัติการดังนั้นแอปที่เขียนด้วย JSON จึงไม่ต้องใช้ความพยายามมากนักในการทำให้ทุกเบราว์เซอร์เข้ากันได้ ในระหว่างการพัฒนา นักพัฒนาจะพิจารณาเบราว์เซอร์หลายตัว แม้ว่า JSON จะมีความสามารถอยู่แล้วก็ตาม

JSON เป็นวิธีที่มีประสิทธิภาพสูงสุดในการแบ่งปันข้อมูลทุกขนาด รวมถึงเสียง วิดีโอ และสื่ออื่นๆ นี่เป็นเพราะความจริงที่ว่า JSON เก็บข้อมูลไว้ในอาร์เรย์ซึ่งทำให้การรับส่งข้อมูลง่ายขึ้น ด้วยเหตุนี้ JSON จึงเป็นรูปแบบไฟล์ที่ดีที่สุดสำหรับ API ออนไลน์และการพัฒนา

เนื่องจาก API แพร่หลายมากขึ้น จึงมีเหตุผลที่จะสันนิษฐานว่าการตรวจสอบความถูกต้องและการทดสอบ API จะมีความสำคัญมากขึ้นเรื่อยๆ นอกจากนี้ยังเป็นเรื่องจริงที่จะคาดหวังว่า JSON ไม่น่าจะง่ายขึ้นเมื่อเวลาผ่านไป นี่หมายความว่าการมีสคีมาสำหรับข้อมูลของคุณจะมีความสำคัญมากขึ้นเมื่อเวลาผ่านไปเท่านั้น เนื่องจาก JSON เป็นรูปแบบไฟล์มาตรฐานสำหรับการทำงานกับ API ดังนั้น JSON Schema จึงเป็นสิ่งทดแทนที่ดีสำหรับผู้ที่ทำงานกับ API

ผ่านการเซ็นเซอร์ TOR

ข้ามการเซ็นเซอร์อินเทอร์เน็ตด้วย TOR

หลีกเลี่ยงการเซ็นเซอร์อินเทอร์เน็ตด้วย TOR Introduction ในโลกที่การเข้าถึงข้อมูลได้รับการควบคุมมากขึ้น เครื่องมือเช่นเครือข่าย Tor ได้กลายเป็นสิ่งสำคัญสำหรับ

Read More »
Kobold Letters: การโจมตีแบบฟิชชิ่งทางอีเมลที่ใช้ HTML

Kobold Letters: การโจมตีแบบฟิชชิ่งทางอีเมลที่ใช้ HTML

Kobold Letters: การโจมตีแบบฟิชชิ่งทางอีเมลแบบ HTML เมื่อวันที่ 31 มีนาคม 2024 Luta Security ได้เผยแพร่บทความที่ให้ความกระจ่างเกี่ยวกับเวกเตอร์ฟิชชิ่งที่ซับซ้อนตัวใหม่ Kobold Letters

Read More »