ฉันเริ่มต้นในกรอบงาน Django REST และต้องการคำแนะนำของคุณ ฉันกำลังพัฒนาบริการเว็บ บริการจะต้องจัดเตรียมส่วนต่อประสาน REST กับบริการอื่น ๆ ส่วนต่อประสาน REST ที่ฉันต้องนำไปใช้นั้นไม่ได้ทำงานกับแบบจำลองของฉันโดยตรง (ฉันหมายถึงการดำเนินการรับ, วาง, โพสต์, ลบ) แต่จะให้บริการอื่น ๆ ด้วยผลการคำนวณบางส่วน ตามคำขอของฉันบริการของฉันทำการคำนวณและส่งคืนผลลัพธ์กลับมา (ไม่เก็บผลลัพธ์ไว้ในฐานข้อมูลของตัวเอง)
ด้านล่างนี้เป็นความเข้าใจของฉันเกี่ยวกับวิธีการนำอินเตอร์เฟส REST ไปใช้งาน ถูกต้องฉันถ้าฉันผิด
- สร้างคลาสที่ทำให้การคำนวณ ตั้งชื่อมันว่า 'CalcClass' CalcClass ใช้โมเดลในการทำงาน
- พารามิเตอร์ที่จำเป็นสำหรับการคำนวณจะถูกส่งไปยังตัวสร้าง
- ใช้การดำเนินการคำนวณ มันจะส่งคืนผลลัพธ์เป็น 'ResultClass'
- สร้าง ResultClass
- มาจากวัตถุ
- มันมีเพียงคุณสมบัติที่มีผลลัพธ์การคำนวณ
- ส่วนหนึ่งของผลการคำนวณจะแสดงเป็น tuple ของ tuples ดังที่ฉันเข้าใจแล้วจะเป็นการดีกว่าถ้าจะทำให้ซีเรียลไลซ์เซชั่นต่อไปใช้คลาสแยกต่างหากสำหรับผลลัพธ์เหล่านั้นและเพิ่มรายการของออบเจ็กต์ดังกล่าวไปยัง
- สร้าง Serializer สำหรับ ResultClass
- สืบทอดมาจาก serializers.Serializer
- ผลลัพธ์จากการคำนวณเป็นแบบอ่านอย่างเดียวดังนั้นให้ใช้คลาสส่วนใหญ่เป็นฟิลด์สำหรับฟิลด์แทนที่จะเป็นคลาสพิเศษเช่น IntegerField
- ฉันไม่ควรใช้วิธี save () ทั้งใน ResultClass หรือ Serializer เพราะฉันจะไม่เก็บผลลัพธ์ (ฉันแค่ต้องการส่งคืนตามที่ร้องขอ)
- Impl serializer สำหรับผลลัพธ์ที่ซ้อนกัน (จำ tuple ของ tuples ที่กล่าวถึงข้างต้น)
- สร้างมุมมองเพื่อส่งคืนผลลัพธ์การคำนวณ
- สืบทอดมาจาก APIView
- ต้องการเพียงแค่รับ ()
- ใน get () สร้าง CalcClass ด้วย params ที่ดึงมาจากการร้องขอ, เรียก calc (), รับ ResultClass, สร้าง Serializer และส่ง ResultClass ไปที่มัน, ส่งคืน Response (serializer.data)
- URL ที่
- ไม่มีราก api ในกรณีของฉัน ฉันควรมี URL เพื่อรับผลการคำนวณต่างๆ (คำนวณด้วยพารามิเตอร์ต่าง)
- เพิ่มการเรียก format_suffix_patterns สำหรับการเรียกดู API
ฉันพลาดอะไรไปหรือเปล่า? วิธีการที่ถูกต้องโดยทั่วไป?