การทำ Web Service ผ่านใต้สภาพแวดล้อมของ Microsoft เท่าที่พบในปัจจุบันมีอยู่ 2 แบบ คือ WCF และ Web API 2
ลองอ่านต่อที่นี่ http://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx
อ่านไปก็ไม่เข้าใจอะไรมาก แต่สนใจตรง Keyword ที่ว่าใช้ Web API จะเป็น REST-style ซึ่งจะได้ยินบ่อย การใช้ Protocol พื้นฐาน และ รูปแบบข้อมูลเป็นแบบง่ายๆ คือ HTTP, JSON, XML เป็นต้น ทั้งนี้ WCF ก็สามารถให้ข้อมูลแบบ JSON และ XML เช่นกัน สุดท้ายลองเลือกใช้ Web API ไปก่อน
Use WCF to create reliable, secure web services that accessible over a variety of transports. Use ASP.NET Web API to create HTTP-based services that are accessible from a wide variety of clients. Use ASP.NET Web API if you are creating and designing new REST-style services. Although WCF provides some support for writing REST-style services, the support for REST in ASP.NET Web API is more complete and all future REST feature improvements will be made in ASP.NET Web API. If you have an existing WCF service and you want to expose additional REST endpoints, use WCF and the WebHttpBinding.
ใช้ Visual Studio Pro 2013
หากเกิด Error ในกระบวนการสร้าง Solution/Project เช่น
> This template attempted to load component assembly NuGet.VisualStudio.Interop, Versioin………….
> The system canont find the file specified (Exception form HRESULT: 0x80070002)
พยายามหาวิธีแก้ไขอยู่นานแต่ไม่เจอ โดยจะเจอว่าเป็นเพราะมี Visual Studio หลาย Version ในเครื่อง…ประเด็นนี้ก็ไม่จริงทั้งหมด แก้ไขง่ายสุดคือ Re-Install
*** อ่านไป ทำไป บันทึกไป แก้ไขไป ***
การทำ Web Service ผ่านใต้สภาพแวดล้อมของ Microsoft เท่าที่พบในปัจจุบันมีอยู่ 2 แบบ คือ WCF และ Web API 2
ลองอ่านต่อที่นี่ http://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx
อ่านไปก็ไม่เข้าใจอะไรมาก แต่สนใจตรง Keyword ที่ว่าใช้ Web API จะเป็น REST-style ซึ่งจะได้ยินบ่อย การใช้ Protocol พื้นฐาน และ รูปแบบข้อมูลเป็นแบบง่ายๆ คือ HTTP, JSON, XML เป็นต้น ทั้งนี้ WCF ก็สามารถให้ข้อมูลแบบ JSON และ XML เช่นกัน สุดท้ายลองเลือกใช้ Web API ไปก่อน
ก่อนเริ่มทำ Web API ก็ศึกษาจากการอ่านจากเว็บ
ขั้นตอนการทำงาน+บันทึกพิเศษเพิ่มเติม
หากเกิด Error ในกระบวนการสร้าง Solution/Project เช่น
> This template attempted to load component assembly NuGet.VisualStudio.Interop, Versioin………….
> The system canont find the file specified (Exception form HRESULT: 0x80070002)
พยายามหาวิธีแก้ไขอยู่นานแต่ไม่เจอ โดยจะเจอว่าเป็นเพราะมี Visual Studio หลาย Version ในเครื่อง…ประเด็นนี้ก็ไม่จริงทั้งหมด แก้ไขง่ายสุดคือ Re-Install
== App_Start/WebApiConfig.cs ==
config.Formatters.Remove(config.Formatters.XmlFormatter);
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue(“application/json”));
== App_Start/WebApiConfig.cs ==
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
Cross-Origin Resource Sharing (CORS)
สำหรับ ASP.NET มีรายละเอียดที่ http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
สำหรับ Visual Studio 2013 ให้เปิดหน้าต่าง Package Manager Console โดยเลือกไปที่เมนู Tools > NuGet Package Manager สำหรับบางรุ่นอาจอยู่ที่ Tools > Package Manager Console พิมพ์คำสั่งติดตั้ง Cors Package และไฟล์อื่นๆ ที่จำเป็น ด้วยคำสั่ง
หลังจากติดตั้งเสร็จ ให้ Restart Visual Studio หลังจากนั้นเปิด Web Service ที่ต้องการให้รองรับ Cors
เปิดไฟล์ App_Start/WebApiConfig.cs แล้วเพิ่มคำสั่งต่อไปนี้ เพื่อใช้งาน
เปิดไฟล์ Controller ที่จะให้บริการข้าม Domain แล้วเพิ่มคำสั่งต่อไปนี้ใน Controller ที่จะให้บริการ
หรือในกรณีที่ต้องการกำหนดค่าให้เป็นผลกับทุกๆ Controller ให้กำหนดที่ App_Start/WebApiConfig.cs โดยปรับส่วนการ EnableCors() ดังตัวอย่างนี้
config.EnableCors(new EnableCorsAttribute(“http://lcwin209.phuket.psu.ac.th:81”, “*”, “GET, POST, PUT”));
NONTAPON RATTANAPITTAYAPORN
More Posts
NONTAPON RATTANAPITTAYAPORN