ฉันเพิ่งอ่านเกี่ยวกับ REST URL และเห็นตัวอย่างต่อไปนี้:
/API/ผู้ใช้/GetUser
ทีนี้ถ้ามีการเข้าถึงผ่าน HTTP ด้วยกริยา GET นี่ไม่ใช่ URL ที่ไม่ถูกต้องเพราะมันอธิบายการกระทำ (GET) ใน URL ใช่หรือไม่
ฉันเพิ่งอ่านเกี่ยวกับ REST URL และเห็นตัวอย่างต่อไปนี้:
/API/ผู้ใช้/GetUser
ทีนี้ถ้ามีการเข้าถึงผ่าน HTTP ด้วยกริยา GET นี่ไม่ใช่ URL ที่ไม่ถูกต้องเพราะมันอธิบายการกระทำ (GET) ใน URL ใช่หรือไม่
ไม่มีสิ่งที่เรียกว่า REST URL อันที่จริงแล้ว คำว่า REST URL นั้นค่อนข้างจะขัดกับความเป็นจริง ข้อจำกัด ไฮเปอร์มีเดียในฐานะกลไกของสถานะแอปพลิเคชัน รับประกันว่า URL นั้นไม่เกี่ยวข้อง: คุณจะติดตามลิงก์ที่เซิร์ฟเวอร์นำเสนอให้คุณเท่านั้น คุณไม่เคยเห็น อ่าน หรือพิมพ์ URI เลยแม้แต่น้อย (เช่นเดียวกับการท่องเว็บ: คุณไม่ต้องดู URL ของลิงก์ อ่าน จดจำ แล้วพิมพ์ลงในแถบที่อยู่ คุณเพียงแค่คลิกลิงก์นั้นและไม่สนใจว่าจริงๆ แล้วลิงก์จะเขียนว่าอะไร)
คำว่า REST URL แสดงเป็นนัยว่าคุณใส่ใจเกี่ยวกับ URL ของคุณในสถาปัตยกรรม REST ของคุณ อย่างไรก็ตาม หากคุณใส่ใจเกี่ยวกับ URL ของคุณในสถาปัตยกรรม REST คุณจะไม่ได้ RESTful ดังนั้น REST URL จึงเป็นสิ่งที่ตรงกันข้าม
[หมายเหตุ: การออกแบบ URI ที่เหมาะสมมีความสำคัญ มาก สำหรับความเป็น URI ของ URI โดยเฉพาะส่วน I นอกจากนี้ ยังมีสาเหตุ ความสามารถในการใช้งาน ที่ดีมากมายสำหรับ URL ที่ สวยงาม แต่ทั้งสองนี้ไม่มีส่วนเกี่ยวข้องกับ REST เลย]
มันเป็นธรรมเนียมมากกว่ากฎตายตัว แต่ฉันอยากเห็นบางอย่างเช่น /API/User/7123
GET/POST/etc อธิบายกริยาการกระทำ ดังนั้นการใส่ไว้ใน url จะทำให้ซ้ำซ้อน และในสถานการณ์เช่นนี้ก็ไม่มีเหตุผลที่จะไม่ปฏิบัติตามแนวทางปฏิบัติที่ดีที่ได้รับการพิสูจน์แล้ว
มีสิ่งดีๆ บางส่วน: ทำความเข้าใจ REST: คำกริยา รหัสข้อผิดพลาด และการตรวจสอบสิทธิ์
วิธีที่ดีกว่าคือการมี /API/User/7123 และใช้วิธี GET/POST เพื่อแสดงถึงการดำเนินการ
สิ่งนี้ไม่ได้แย่เสมอไป... มันเกี่ยวข้องกับเฟรมเวิร์กที่คุณใช้ในการสร้าง URL ที่เหลือมากกว่า ลิงก์ @Infinity ที่โพสต์ไว้เป็นแหล่งข้อมูลที่ดี แต่อย่าจำกัดตัวเองอยู่เพียงทฤษฎีที่ตั้งไว้ เนื่องจากอาจทำให้เกิดงานมากเกินไปในกรอบงานบางอย่างได้
ตัวอย่างเช่น ไม่มีเหตุผลว่าทำไมคุณถึงไม่ต้องการเรียกใช้ GET บน /API/Users/{id}/Delete เพื่อแสดงข้อความประเภท "คุณแน่ใจหรือไม่" ก่อนที่จะใช้เมธอด DELETE
/API/User/GetUser
ไม่สงบ การใช้คำกริยาเพื่อระบุทรัพยากรไม่ใช่เรื่องดี URL ตัวอย่างยังคงใช้ได้ แต่ก็ไม่ได้ทำให้ถูกต้องเช่นกัน มันผิดเหมือนประกาศต่อไปนี้
String phoneNumber = "[email protected]";