“ Web API” ใน ASP.Net MVC4 คืออะไร


15

ฉันรู้ว่าเว็บ API คืออะไร
ฉันเขียน API ในหลายภาษา (รวมถึง MVC3)
ฉันยังฝึกฝนอย่างดีใน ASP.Net
ฉันเพิ่งค้นพบว่า MVC4 มี "Web API" และโดยไม่ต้องผ่านตัวอย่างวิดีโอฉันไม่สามารถหาคำอธิบายที่ดีว่ามันคืออะไร
จากประสบการณ์ที่ผ่านมาของฉันเทคโนโลยีของ Microsoft (โดยเฉพาะ ASP.Net) มีแนวโน้มที่จะใช้แนวคิดที่เรียบง่ายและห่อหุ้มด้วยค่าโสหุ้ยที่ไร้ประโยชน์ซึ่งจะทำให้ทุกอย่าง "ง่ายขึ้น"
มีใครช่วยอธิบายให้ฉันฟังว่า Web API ใน MVC4 เป็นอะไรกันแน่ ทำไมฉันต้องการมัน ทำไมฉันถึงเขียน API ของตัวเองไม่ได้?


3
คุณกำลังพูดถึงกรอบWeb APIใหม่หรือไม่? นั่นแยกจาก MVC ถ้านั่นคือสิ่งที่คุณหมายถึงลองดูที่โพสต์บล็อกนี้โดย Rick Strahl
Oded

1
@Oded: คุณควรใส่นี่เป็นคำตอบ
James P. Wright

สิ่งที่ยอดเยี่ยมที่สุดเกี่ยวกับ Web API (ที่ฉันไม่เห็นอยู่ในรายการใด ๆ ในคำตอบที่ยอมรับหรือลิงก์ด้านบน) คือถ้าคุณส่งคืน IQueryable <> วิธีการทางเว็บของคุณสนับสนุนไวยากรณ์แบบสอบถาม OData โดยอัตโนมัติ! - ใน ASP.NET 4.5 Stack ทั่วไป "Web API" และ "SignalR" คือ "แทนที่" WCF (ฉันไม่แน่ใจว่าพวกเขาถูกสร้างขึ้นบน WCF หรือไม่ แต่ WCF ถูกลบออกจากบล็อกไดอะแกรมทั้งหมดและแทนที่ ด้วย "Web API" และ "SignalR")
BrainSlugs83

Why can't I just write my own API?ด้วย ASP.NET MVC ปกติหรือไม่ คุณสามารถ. ASP.NET MVC Web API ช่วยให้คุณเพิ่มสารพัดเพื่อให้ง่ายขึ้น โปรดดูที่ด้านล่าง.
Jim G.

คำตอบ:


16

ASP.NET Web API เป็นเฟรมเวิร์ก "ที่ไม่มีความคิดเห็น" เพื่อสร้างบริการHTTPโดยไม่คำนึงถึง REST หรือ RPC เป็นการใช้งาน RFC 2616 (HTTP Spec) ที่ดีที่สุดของ Microsoft

แน่นอนคุณสามารถสร้าง API ของคุณเอง แต่ ASP.NET Web API:

  • สร้างขึ้นตามโมเดลตุ๊กตารัสเซียซึ่งอนุญาตให้เพิ่มโมดูลเหมือนเลโก้ลงใน HTTP pip
  • ทำให้ HTTP เป็นพลเมืองชั้นหนึ่งดังนั้นส่วนหัวที่พบบ่อยทั้งหมดจะพิมพ์อย่างรุนแรง (ไม่ใช่แค่ค่าชื่อ) และช่วยในการแยกพวกเขา
  • อนุญาตสำหรับการโฮสต์ ASP.NET (IIS) หรือการโฮสต์ด้วยตนเอง
  • รองรับการเจรจาต่อรองเนื้อหาประเภทสื่อ ...
  • Isync จากบนลงล่าง
  • ใช้วิธีการที่คล้ายกันสำหรับลูกค้าที่มี HttpClient

6

API เว็บใหม่จาก Microsoft นั้นเป็นชื่อที่แนะนำทั้งหมดเกี่ยวกับการเขียน APIs ที่สามารถเข้าถึงเว็บได้โดยมีการโค้งบน REST

เมื่อเร็ว ๆ นี้ Rick Strahl บล็อกเกี่ยวกับมันและมีการวิเคราะห์ที่ดีเมื่อใช้ MVC กับ Web API

สิ่งต่าง ๆ เช่นสร้างขึ้นในการเจรจาต่อรองเนื้อหาหลายสร้างในรูปแบบและอื่น ๆ


6

กล่าวโดยย่อ: ASP.NET Web API กำลังทำให้ REST เป็นพลเมืองอันดับหนึ่งใน. NETซึ่ง WCF ไม่สามารถโอบกอดได้จริงๆ อย่างที่คุณทราบASP.NET Web APIเป็นเฟรมเวิร์กfor building web APIsที่ด้านบนของ. NET Framework

หนึ่งในความยุ่งยากที่ใหญ่ที่สุดที่เรามีในฐานะนักพัฒนาเว็บคือการเผชิญหน้ากับการกำหนดค่าที่ไม่มีที่สิ้นสุดกับ WCF ผมหมายถึง WCF ดีมาก แต่ยังไม่ได้รับการกอด REST ตั้งแต่กรอบ WCF เว็บ API มีบางอย่างที่เรียกว่า REST Starter Kit แต่มันก็ตายไปแล้ว

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


1
หากคุณค้นคว้าประวัติของ Web API มันจะเริ่มขึ้นใน WCF
SASS_Shooter

มันเป็นการทดแทนที่เบาด้วยคุณสมบัติที่สำคัญเพื่อความสะดวกในการกำหนดค่าและปรับปรุงการพัฒนาแอพ
Yusubov

@ Yusobov: นี่ไม่เป็นความจริง - นอกจากนี้ยังมีบริการข้อมูล WCF ซึ่งค่อนข้างดีในการสร้าง REST apis apis ฉันใช้มันในสภาพแวดล้อมการผลิตและใช้งานได้ดีจริง ๆ เมื่อตั้งค่าแล้ว ปัญหาเดียวที่มีคือการตั้งค่าได้ยากกว่า ASP.NET Web API
Adrian Grigore

1

ASP.NET Web API เป็นเฟรมเวิร์กที่ทำให้การสร้างบริการ HTTP ที่เข้าถึงลูกค้าได้หลากหลายรวมถึงเบราว์เซอร์และอุปกรณ์มือถือ

ASP.NET Web API เป็นแพลตฟอร์มที่เหมาะสำหรับการสร้างแอปพลิเคชั่น RESTful ใน. NET Framework

http://www.asp.net/web-api


แก้ไข:

โดยเฉพาะ ASP.NET Web API ประกอบด้วย:

  1. ขั้นตอนการ ASP.NET ที่คล่องตัวพร้อมค่าใช้จ่ายลดลงหากคุณเลือกที่จะโฮสต์บริการของคุณใน IIS
  2. HttpClientซึ่งช่วยให้ลูกค้าเชื่อมต่อกับ Web API ได้ง่ายขึ้น

ฉันสามารถอ่านสิ่งเหล่านั้นด้วยตัวเอง คำถามของฉันคือประเด็นอะไร อะไรคือความแตกต่างในการใช้ Web API และการใช้ MVC ปกติ แต่มี JsonResults แทนที่จะเป็น ViewResults
James P. Wright

1. ก่อนหน้า MVC 4 คุณสามารถส่งคืน JSONResult โดยไม่มีปัญหาใด ๆ MVC 4 เพียงแค่รักษาความสามารถนั้นไว้รวมคลาสตัวช่วยอื่น ๆ เพื่อให้ง่ายขึ้นและเพิ่มความคล่องตัวในการส่ง ASP.NET ไปที่ลดค่าใช้จ่ายเมื่อคุณรู้ว่าคุณไม่จำเป็นต้องส่งคืน ViewResults
จิม G.

1
นอกจากนี้เนื่องจากเป็นการอัปเดตที่มีประสิทธิภาพสำหรับ WCF Web API คุณจึงไม่ได้แต่งงานกับ IIS คุณสามารถโฮสต์บริการ ASP.NET Web API ด้วยตนเองได้หากต้องการ wcf.codeplex.com/…
จิม G.

-2

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


นี้ดูเหมือนจะไม่เพิ่มอะไรที่สำคัญกว่าจุดทำและอธิบายในก่อน 4 คำตอบ
ริ้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.