เรากำลังเปิดตัว REST API ใหม่และฉันต้องการให้ชุมชนป้อนข้อมูลเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับวิธีที่เราควรจัดรูปแบบพารามิเตอร์อินพุต:
ตอนนี้ API ของเรานั้นมี JSON เป็นศูนย์กลางมาก (จะส่งคืน JSON เท่านั้น) การพิจารณาว่าเราต้องการ / จำเป็นต้องส่งคืน XML หรือไม่นั้นเป็นปัญหาแยกต่างหาก
เนื่องจากเอาท์พุท API ของเราคือ JSON centric เราได้ลงเส้นทางที่อินพุตของเราเป็น JSON centric เล็กน้อยและฉันคิดว่ามันอาจจะสะดวกสำหรับบางคน แต่แปลกโดยทั่วไป
ตัวอย่างเช่นเพื่อรับรายละเอียดผลิตภัณฑ์บางอย่างที่สามารถดึงผลิตภัณฑ์หลายรายการพร้อมกันในขณะนี้เรามี:
http://our.api.com/Product?id=["101404","7267261"]
เราควรทำให้สิ่งนี้ง่ายขึ้นเช่น:
http://our.api.com/Product?id=101404,7267261
หรือมีการป้อนข้อมูล JSON มีประโยชน์หรือไม่ ปวดมากขึ้นไหม?
เราอาจต้องการยอมรับทั้งสองสไตล์ แต่ความยืดหยุ่นนั้นจริงทำให้เกิดความสับสนมากขึ้นและปวดหัว (การบำรุงรักษาเอกสารประกอบ ฯลฯ )?
กรณีที่ซับซ้อนมากขึ้นคือเมื่อเราต้องการเสนออินพุตที่ซับซ้อนมากขึ้น ตัวอย่างเช่นหากเราต้องการอนุญาตให้ใช้ตัวกรองหลายตัวในการค้นหา:
http://our.api.com/Search?term=pumas&filters={"productType":["Clothing","Bags"],"color":["Black","Red"]}
เราไม่ต้องการใส่ประเภทตัวกรอง (เช่นประเภทผลิตภัณฑ์และสี) เป็นชื่อคำขอเช่นนี้:
http://our.api.com/Search?term=pumas&productType=["Clothing","Bags"]&color=["Black","Red"]
เพราะเราต้องการจัดกลุ่มตัวกรองทั้งหมดเข้าด้วยกัน
ในท้ายที่สุดสิ่งนี้สำคัญจริงๆหรือ อาจเป็นไปได้ว่ามี JSON มากมายออกมาที่นั่นว่าประเภทอินพุตไม่สำคัญมากนัก
ฉันรู้ว่าไคลเอนต์ JavaScript ของเราที่โทร AJAX ไปยัง API อาจชื่นชมอินพุต JSON เพื่อทำให้ชีวิตง่ายขึ้น
[]
ไวยากรณ์ไม่ได้รับการสนับสนุนเสมอ (และแม้ว่าจะเป็นเรื่องปกติก็ตามแม้อาจเป็นการละเมิดข้อกำหนด URI) เซิร์ฟเวอร์ HTTP และภาษาการเขียนโปรแกรมบางอย่างต้องการเพียงแค่ทำซ้ำชื่อ (เช่นproductType=value1&productType=value2
)