Custom Error Handling for ObjectMapper
ผมเคยเขียนถึง Model Mapper Library ชื่อ Mantle เมื่อนานมาแล้ว ตอนเขียน Objective-C ชอบมากเลยตอนนั้น สบายขึ้นเยอะ แต่พอมาเขียน Swift ก็หาอะไรที่คล้ายและเก่งเท่า Mantle ไม่ได้เลย ผมลองหลายตัวจนมาจบที่ ObjectMapper และผมใช้คู่กับ Network Library ชื่อดังอย่าง Alamofire ซึ่งมีคนทำ Extension ครอบไว้ให้เลยคือตัวนี้ AlamofireObjectMapper ทำให้เมื่อเราขอข้อมูลจาก API ผ่าน Network แล้วโค้ดที่ได้ก็จะหน้าตาประมาณนี้เลย Wait for the Code .... จะเห็นว่าส่วนของ JSON Parser จะไม่อยู่ที่นี่ แต่มีเพียงโค้ดที่เราทำการขอข้อมูลจาก API และพ่นออกมาเป็น Object ให้เราเลย คราวนี้พอเราแงะเข้าไปดูใน AlamofireObjectMapper นั้น หน้าที่ของการทำ json parsing จะอยู่ที่การเขียน Extension ของ Request class ของ Alamofire เพื่อทำ Custom Serializer ระหว่างที่เซิฟเวอร์ส่งข้อมูลกลับมาให้เรา Wait for the Code .... บางคนอาจจะไม่มีปัญหากับโค้ดนี้ แม้กระทั่งผมจนพบว่า มีปัญหาหว่ะ... นั่นคือจังหวะของการ parse error จากเซิฟเวอร์ซึ่งคนเขียน Extenstion นี้ไม่ได้เขียนในส่วนของการจัดการ Custo...