Basic controller – Post

המשך של Basic controller.

לפעמים אנחנו רוצים לקבל ל-controller פרמטרים מורכבים ב-body. נכתוב פונקציה שתקבל Product מהמשתמש ומחזירה אותו. אל הפונקציה הזאת ניגש עם HttpPost. הפרמטרים שמגיעים עם בקשת post מגיעים ב-body של הבקשה ונכנסים בהתאמה לפרמטר שנתנו לפונקציה.

[HttpPost]
public ActionResult<Product> SendAndGetProduct(Product p) {
    return Ok(p);
}

לצורך הדוגמא נשתמש ב-class הבא:

public class Product
{
    public int id { get; set; }
    public string? name { get; set; }
    public string? description { get; set; }
    public decimal price { get; set; }
}

אם נריץ את הפרוייקט נראה את שתי הפונקציות שיש לנו בקובץ ה-controller.

כאשר מבצעים בקשת post אנחנו יכולים להעביר נתונים מה-client ל-server ב-body.

אפשר לשנות את ה-url ואפשר גם לשלוח פרמטרים דרך ה-url כמו בבקשה get.

[HttpPost("SendProduct/{name}")]
public ActionResult<Product> SendAndGetProduct(string name, Product p) {
    return Ok(p);
}