Service Broker Layer and Apex Rest Service : Part II
จาก Service Broker Layer and Apex Rest Service : Part I มาต่อกันที่ ตัว Service Broker ครับ ส่วนนี้เราจะทำตัว class ที่เป็น Service และวางมาตราฐานการทำงานเอาไว้(interface) เพื่อให้ ตัว Implementation class ทำการเขียน Details อีกทีครับเริ่มด้วยตัว ServiceBroker Class
เราใช้ Strategy Pattern ในนี้เราเลยกำหนด ISLOSService เอาไว้ให้ Implement Class ไปเขียนต่อ ต่อมาเรามีกำหนดรูปแบบ โครงสร้างข้อมูล เพื่อส่งเข้า และส่งออกเป็น SLOSContext.SLOSRespond และ SLOSContext.SLOSRequest ดัง Code ด้านล่าง
โดย Project นี้เป็นการส่ง Information จะ Table(SObject) Opportunity ไปที่ Core Bank เลยให้ส่ง Opportunity เข้ามาที่ Constructor ของ Class SLOSRequest
งานต่อไปคือการขียน Implementation Class 1 เพื่อให้บริการเหมือนภาพด้านล่าง
โดยผมตั้งใจทำเป็น Mock Service เพื่อลองให้ Vendor อีกเจ้าทำ SOAP Service ให้เสร็จก่อน แล้วผมจะเขียน Implementation Class 2 แล้วสลับมาใช้แบบที่ไม่กระทบ code ที่ developer คนอื่นเรียกใช้เลย มาดู Implementation Class 1 ว่ามีหน้าตาเป็นอย่างไง ผมตั้งชื่อมันว่า SLOSServiceRestMock ชื่อก็บอกแล้วว่า Mock นะแจ๊ะ ….
อย่างแรกเราต้องทำการบอกว่าเรา ได้มาตราฐาน ISO อะไร นั้นก็คือ implements SLOSServiceBroker.ISLOSService เป็นตัวบอกว่าเราทำตามสิ่งที่ตกลงไว้ว่า class เราจะมีการทำงาน SLOSContext.SLOSRespond sendRequest(SLOSContext.SLOSRequest slosReq) ให้เรียกใช้ได้ แล้วใน class นี้เป็นการ CallOut ไปที่ Rest Service ที่ได้ อธิบายไปแล้วที่บทความ Service Broker Layer and Apex Rest Service : Part I
ถึงตรงนี้ทุกอย่างก็พร้อมแล้ว เรามาลอง RUN ดูกันดีกว่าว่าทำงานได้จริงหรือป่าวโดยเปิด Developer Console มาเลยจ้า
พอเปิดขึ้นมาจะเห็นหน้าจอแบบด้านล่าง
จากนั้นกด Key ลัด Ctrl+E หรือ ไปที่ Menu >> Debug >> Open Execute Anonymous Window
จากนั้นก็ลองเอา code ไป RUN เลย
ได้ความว่า Error !!!!!!!!!!!!!!!!!!!!!!!
ลองอ่าน debug log ดูก็เข้าใจว่าเราลืม add remote site นั้นเอง ดังนั้นก็จัดไปตามภาพด้านล่างเลย
ลอง Run อีกทีรอบนี้สำเร็จ