4
REST API - DTOs หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ขณะนี้ฉันกำลังสร้าง REST-API สำหรับโครงการและได้อ่านบทความตามบทความเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุด ดูเหมือนว่าหลายคนจะต่อต้าน DTO และเพียงแค่เปิดเผยรูปแบบโดเมนในขณะที่คนอื่น ๆ คิดว่า DTOs (หรือโมเดลผู้ใช้หรือสิ่งที่คุณต้องการเรียกใช้) เป็นแนวปฏิบัติที่ไม่ดี ส่วนตัวแล้วฉันคิดว่าบทความนี้มีเหตุผลมากมาย อย่างไรก็ตามฉันยังเข้าใจข้อเสียของ DTOs ด้วยรหัสการแมปพิเศษทั้งหมดโมเดลโดเมนที่อาจเหมือน 100% กับ DTO-counterpart และอื่น ๆ API ของเราส่วนใหญ่ถูกสร้างขึ้นเพื่อให้ลูกค้ารายอื่นอาจใช้ข้อมูลอย่างไรก็ตามถ้าเราทำถูกต้องเราก็ต้องการที่จะใช้มันสำหรับเว็บ GUI ของเราเองถ้าเป็นไปได้ สิ่งที่เราอาจไม่ต้องการเปิดเผยข้อมูลโดเมนทั้งหมดให้กับผู้ใช้ไคลเอนต์อื่น ๆ ข้อมูลส่วนใหญ่จะสมเหตุสมผลในเว็บแอพพลิเคชันของเราเอง นอกจากนี้เราอาจไม่ต้องการเปิดเผยข้อมูลทั้งหมดเกี่ยวกับวัตถุในทุกสถานการณ์โดยเฉพาะความสัมพันธ์กับวัตถุอื่น ๆ เป็นต้น ตัวอย่างเช่นหากเราแสดงรายการของวัตถุเฉพาะเราไม่จำเป็นต้องเปิดเผยลำดับชั้นวัตถุทั้งหมด เพื่อที่ลูกของวัตถุจะไม่ถูกเปิดเผย แต่สามารถค้นพบได้ผ่านลิงก์ (เกลียดชัง) ฉันควรจะแก้ไขปัญหานี้อย่างไร ฉันกำลังคิดที่จะใช้ Jackson mixins ในโมเดลโดเมนของเราเพื่อควบคุมข้อมูลที่จะได้รับจากสถานการณ์ที่แตกต่างกัน หรือเราควรใช้ DTO ตลอดทาง …