ASP.NET คือ ตอนที่ 3 : การสร้างบริการ (Services) HTTP Web API

  1. ASP.NET Web API คืออะไร
  2. การทำแอปพลิเคชัน ASP.NET Web API
  3. สร้าง Web API Controller
  4. การกำหนดเส้นทาง (Routing) ใน ASP.NET Web API
  5. Model Binding และ Validation
  6. การดำเนินการ CRUD ใน Web API

ASP.NET Web API เป็นส่วนสำคัญของเฟรมเวิร์กของ ASP.NET สำหรับสร้างบริการ HTTP เป็นโซลูชันที่แข็งแกร่งและขยายได้เพื่อสร้างแอปพลิเคชัน RESTful บนแพลตฟอร์ม .NET เมื่อเราดำดิ่งสู่หัวข้อนี้ เราจะเรียนรู้วิธีใช้ประโยชน์จาก ASP.NET Web API เพื่อสร้างบริการ HTTP ที่มีประสิทธิภาพซึ่งเหมาะสำหรับการใช้งานโดยไคลเอนต์เว็บและแอป

Web API ใช้ HTTP เป็นโปรโตคอลแอปพลิเคชัน มันแตกต่างเนื่องจากความเรียบง่ายและสอดคล้องกับแนวทางปฏิบัติในการทำแอพสมัยใหม่ ASP.NET Web API มาพร้อมกับคุณสมบัติมากมาย รวมถึงการกำหนดเส้นทาง (routing) การรวมโมเดล (model binding) และการตรวจสอบ (validation) ซึ่งคล้ายกับ ASP.NET MVC สามารถผสานรวมกับแอปพลิเคชัน .NET อื่นๆ ได้อย่างราบรื่น ทำให้เป็นตัวเลือกอันดับต้นสำหรับนักพัฒนาทั้งในด้านการทำเว็บและทำแอพ

1. ASP.NET Web API คืออะไร

ในระดับพื้นฐานที่สุด ASP.NET Web API เป็นเฟรมเวิร์กสำหรับสร้างบริการเว็บที่ยึดตามหลักการทางสถาปัตยกรรมของ Representational State Transfer (REST) บริการ RESTful เป็นบริการที่เน้นทรัพยากร ไร้สถานะ และใช้ประโยชน์จากโปรโตคอล HTTP มาตรฐาน ทำให้สามารถทำงานร่วมกันได้สูงและเข้าถึงได้โดยลูกค้าที่หลากหลาย

ในการทำเว็บ หมายความว่าบริการ ASP.NET Web API สามารถทำหน้าที่เป็นแกนหลักของแอปพลิเคชันหน้าเดียวแบบไดนามิก (SPA) โดยให้ข้อมูลและขับเคลื่อนสถานะของแอปพลิเคชันผ่านการเรียก AJAX ในการทำแอป บริการเหล่านี้สามารถใช้งานโดยแอปพลิเคชันมือถือ ซึ่งให้การเข้าถึงและจัดการข้อมูลแบบรวมศูนย์

2. การทำแอปพลิเคชัน ASP.NET Web API

เพื่อแสดงให้เห็นถึงการใช้งานจริงของ ASP.NET Web API เราจะมาอธิบายขั้นตอนการสร้าง API อย่างง่ายกัน เราจะใช้ Visual Studio แต่หลักการนี้ใช้กับสภาพแวดล้อมการทำแอพและทำเว็บใด ๆ ที่เข้ากันได้กับ .NET อย่างเท่าเทียมกัน

ขั้นแรก สร้าง ASP.NET Web Application Project ใหม่ เลือกเทมเพลต “Web API” เทมเพลตจะสร้างแอปพลิเคชัน Web API ใหม่ที่มีแพ็คเกจ NuGet ที่กำหนดค่าไว้ล่วงหน้าหลายชุดซึ่งจำเป็นสำหรับการสร้าง Web API

โครงสร้าง Web API คล้ายกับแอปพลิเคชัน ASP.NET MVC มาก ประกอบด้วยคอนโทรลเลอร์ โมเดล และ (อาจ) มุมมอง อย่างไรก็ตาม ในกรณีของ Web API ไม่จำเป็นต้องใช้ Views เนื่องจากวัตถุประสงค์หลักคือการส่งคืนข้อมูลแทน HTML

3. สร้าง Web API Controller

ใน Web API ตัวควบคุมคือคลาสธรรมดาที่สืบทอดมาจากคลาสฐานของ ApiController ตัวควบคุมมีเมธอดต่างๆ ที่แสดงกริยา HTTP เช่น GET, POST, PUT, DELETE แต่ละวิธีสอดคล้องกับการดำเนินการเฉพาะในทรัพยากร

ตัวอย่างเช่น พิจารณาตัวควบคุม “Product” แบบธรรมดา:

public class ProductController : ApiController
{
    Product[] products = new Product[] 
    { 
        new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, 
        new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, 
        new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M } 
    };

    public IEnumerable<Product> GetAllProducts()
    {
        return products;
    }

    public IHttpActionResult GetProduct(int id)
    {
        var product = products.FirstOrDefault((p) => p.Id == id);
        if (product == null)
        {
            return NotFound();
        }
        return Ok(product);
    }
}

ในคอนโทรลเลอร์นี้ GetAllProducts และ GetProduct เป็นวิธีการดำเนินการที่จัดการคำขอ HTTP GET พวกเขาสอดคล้องกับทรัพยากร ‘fetching’ รายการแรกจะรับผลิตภัณฑ์ทั้งหมด ในขณะที่รายการหลังจะดึงข้อมูลผลิตภัณฑ์เฉพาะตามรหัสของมัน

4. การกำหนดเส้นทาง (Routing) ใน ASP.NET Web API

การกำหนดเส้นทางใน ASP.NET Web API ทำงานบนหลักการเดียวกับ ASP.NET MVC เทมเพลตเส้นทางถูกกำหนดไว้ในไฟล์ WebApiConfig ซึ่งโดยทั่วไปจะอยู่ในโฟลเดอร์ App_Start เทมเพลตเส้นทางเริ่มต้นคือ ‘api/{controller}/{id}’ โดยที่ ‘id’ เป็นตัวเลือก

กลไกการกำหนดเส้นทางทำงานโดยการจับคู่คำขอขาเข้ากับเทมเพลตเส้นทาง ซึ่งจะแมปกับการดำเนินการของคอนโทรลเลอร์ ตัวอย่างเช่น คำขอ GET ไปที่ ‘api/product’ จะเรียกใช้เมธอด GetAllProducts ในขณะที่คำขอ GET ไปที่ ‘api/product/1’ จะเรียกใช้ GetProduct เมธอดที่มีพารามิเตอร์ id เป็น 1

5. Model Binding และ Validation

เช่นเดียวกับ ASP.NET MVC Web API ยังรองรับการรวมโมเดลและการตรวจสอบ ซึ่งหมายความว่าคุณสามารถผูกข้อมูลคำขอ HTTP กับพารามิเตอร์วิธีการดำเนินการได้อย่างง่ายดาย และตรวจสอบความถูกต้องของข้อมูลนี้โดยใช้ตัวตรวจสอบคำอธิบายประกอบข้อมูล ตัวอย่างเช่น หากคุณมีโมเดล Product ที่มีฟิลด์บังคับNameWeb API สามารถตรวจสอบคำขอ POST ที่เข้ามาได้โดยอัตโนมัติเพื่อให้แน่ใจว่าฟิลด์ Name นั้นมีอยู่จริง

6. การดำเนินการ CRUD ใน Web API

ในการจัดเตรียมชุดการดำเนินการที่สมบูรณ์บนทรัพยากร Web API ของคุณควรใช้การดำเนินการสร้าง (POST) อ่าน (GET) อัปเดต (PUT) และลบ (DELETE) การดำเนินการเหล่านี้สอดคล้องกับการดำเนินการ SQL มาตรฐานและครอบคลุมกรณีการใช้งานส่วนใหญ่สำหรับการโต้ตอบกับข้อมูล

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


ASP.NET Web API เป็นเฟรมเวิร์กที่ทรงพลังอย่างยิ่งสำหรับการสร้างบริการ HTTP ด้วยการยึดตามหลักการของ REST และใช้ประโยชน์จากสภาพแวดล้อม ASP.NET ที่คุ้นเคย Web API จึงมีวิธีการที่ตรงไปตรงมาในการสร้างบริการบนเว็บที่สามารถขับเคลื่อนไคลเอนต์เว็บและแอปได้

ไม่ว่าคุณกำลังสร้างเว็บแอปพลิเคชันที่ซับซ้อนด้วย UI ที่ขับเคลื่อนด้วย AJAX หรือแอปบนอุปกรณ์เคลื่อนที่ที่ต้องการชั้นข้อมูลที่แข็งแกร่งและยืดหยุ่น ASP.NET Web API นำเสนอโซลูชัน เป็นเครื่องมือที่ขาดไม่ได้ในชุดเครื่องมือของนักพัฒนา .NET ยุคใหม่ ซึ่งช่วยทั้งกระบวนการทำเว็บและทำแอพด้วยความเรียบง่าย ทรงพลัง และยืดหยุ่น

ดังที่เราได้เห็นในบทความนี้ การเริ่มต้นด้วย ASP.NET Web API นั้นค่อนข้างตรงไปตรงมา ด้วยความรู้เกี่ยวกับ .NET framework คุณสามารถเริ่มสร้างบริการบนเว็บได้อย่างรวดเร็ว จากจุดนี้ ความเป็นไปได้ไม่มีที่สิ้นสุด และเป็นการเดินทางที่น่าตื่นเต้นในขอบเขตของการทำเว็บและทำแอพ


ASP.NET คืออะไร

ASP.NET คือ ตอนที่ 2 : Model-View-Controller (MVC)
ASP.NET คือ ตอนที่ 4 : ASP.NET Core