Google Flutter

Flutter & Dart: ไขปริศนา Uri เข้าใจง่าย

เรื่องที่เกี่ยวข้อง - Google Flutter

ตอนที่ Flutter อัพเดตเป็นเวอร์ชั่น 2.0 เป็นต้นมา การใช้แค่ URL address เป็น parameter ดิบๆ ก็เริ่มหายไป กลายเป็นการใช้สิ่งที่เรียกว่า URI แทน

ซึ่งสำหรับหลายๆ คนที่ยังใหม่ต่อการเขียนแอพ เขียนโค้ด ก็อาจจะช็อคไปเลย ว่า URI คืออะไร? ต่างจาก URL ยังไง?

URI คืออะไร เกิดขึ้นมาทำไม? ขอสั้นๆ

เริ่มจากชื่อเต็มก่อน นั่นคือ URI ย่อมาจาก Uniform Resource Identifier 

เอาเป็นว่าทุกสิ่งรอบตัวเรานั้นมีชื่อเรียก หรือมีที่อยู่ใช่ไหม? เช่น

  • ที่อยู่ไปรษณีย์ ที่สามารถทำให้คนส่งของหาบ้านของเราเจอ
  • หรือแม้แต่เบอร์โทรศัพท์ก็คือหมายเลขชุดหนึ่ง ที่ทำให้เราติดต่อคนๆ หนึ่ง หรือบริษัทๆ หนึ่งได้
  • เลขประจำตัวประชาชน ที่ทำให้เราระบุตัวตนของคนๆ หนึ่งได้

URI คือรูปแบบของกลุ่มตัวอักษร ตัวเลข หรือข้อความ ที่สร้างขึ้นมาเพื่อระบุที่อยู่ของสิ่งๆ หนึ่ง ทั้งแบบในโลกจริง หรือเรา หรือโลกดิจิตอล เช่นที่อยู่ของ server หรือ website

แต่มันก็ไม่ใช่อะไรที่ต้องหมายถึงของบนเน็ตเสมอไปนะ อันนี้ควรรู้ไว้

และใช่ครับ URL คือรูปแบบหนึ่งของ URI นั่นเอง

แล้วทำไมในการเขียน Flutter เขาเริ่มเอา URI มาใช้แทนการกำหนดชื่อ URL ตรงๆ ล่ะ?

อย่างที่เราทำความเข้าใจกันข้างบนไปแล้วว่า การกำหนดชื่อ URL ในการทำงานของคำสั่งใน Flutter มันสามารถใช้ได้

แต่มันก็หมายความว่าเราจะใช้ประโยชน์แค่ ติดต่อ Web API เท่านั้นหรอ? ไม่ใช่แน่ๆ มันแคบไป

ดังนั้น หากเรากำหนดรูปแบบของ URL เป็น URI มันก็สามารถที่จะจัดการรูปแบบการเข้าถึงข้อมูลต่างๆ ได้เป็นมาตรฐานมากขึ้น และหลากหลายมากขึ้น เช่น การระบุประเภทของไฟล์เป็นต้น

เราจึงเห็นการที่ Flutter หรือ Package ต่างๆ ปรับมารับค่าเป็น URI มากขึ้นนั่นเอง

การสร้าง URI object โดยใช้ method ที่มี

ดังนั้นเพื่อให้ใช้งานได้ง่ายอยู่ ตัว class Uri ก็มี method ติดมาให้เพื่อให้เราสามารถเอา URL Address ของ Web API มาใช้ในรูปแบบของ URI ได้ง่ายครับ

โดยจะแยกออกเป็น 2 แบบ นั่นคือ

  • Uri.http
  • Uri.https

เดาไม่ยากเลยใช่ไหม ว่า 2 อันนี้แตกต่างกันยังไง? 😆

อันแรกใช้งาน URI สำหรับ URL ที่เป็น http protocal และอันที่สองสำหรับ https protocol ครับ

เช่นถ้าเราต้องระบุที่อยู่ของเว็บไซต์พล https://www.nextflow.in.th

เวลาสร้าง Uri ก็จะเป็นแบบด้านล่าง

// https://www.nextflow.in.th

var uri = Uri.https('nextflow.in.th', '');

หรือถ้าเกิดอยากส่ง request ไปที่เว็บคอร์สวิดีโอออนไลน์ Flutter ที่อยู่บน Website ของพล ก็จะมีการกำหนด parameter ตัวที่สอง เป็นชื่อ path ที่เกี่ยวข้องนั่นเอง

// https://nextflow.in.th/google-flutter-online

var uri = Uri.https('nextflow.in.th', '/google-flutter-online');

หรือในการค้นหาบทความที่พลสอนเรื่องการใช้งาน Flutter ปกติก็จะต้องใส่ query parameter เข้าไปด้านหลัง URL 2 ตัว นั่นก็คือ ?s=flutter&lang=thai

ก็จะกลายเป็นแบบด้านล่าง

// https://nextflow.in.th/?s=flutter&lang=thai

var uri = Uri.https('nextflow.in.th', '', { 's':'flutter', 'lang':'thai' } );

เท่านี้เราก็สามารถกำหนดที่อยู่ของ Resource บน Internet ของเรา ไม่ว่าจะเป็น Web API หรือของอื่นๆ ให้กับ Flutter ในการเอาไปใช้งานได้แล้วครับ

อ้างอิง – Flutter API, Whatis, Mozilla Developer Network

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

  • เข้าใจง่าย ใช้ได้จริง ออกแบบการสอนอย่างเข้าใจโดยโค้ชพล
  • มีคอร์สสำหรับคนใช้งานทั่วไป จนถึงเรียนรู้เพื่อใช้งานในสายอาชีพขั้นสูง
  • ทุกคอร์สมีใบประกาศณียบัตรรับรองหลังเรียนจบ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save