Chính xác thì API Web API là gì trong ASP.Net MVC4?


15

Tôi biết API Web là gì.
Tôi đã viết API bằng nhiều ngôn ngữ (kể cả trong MVC3).
Tôi cũng được thực hành tốt trong ASP.Net.
Tôi mới phát hiện ra rằng MVC4 có "API Web" và không cần xem qua các ví dụ video, tôi không thể tìm thấy lời giải thích tốt về chính xác nó là gì.
Từ kinh nghiệm trước đây của tôi, các công nghệ của Microsoft (đặc biệt là ASP.Net) có xu hướng lấy một khái niệm đơn giản và bọc nó trong một loạt các chi phí vô dụng có nghĩa là làm cho mọi thứ "dễ dàng hơn".
Ai đó có thể vui lòng giải thích cho tôi API Web trong MVC4 chính xác không? Tại sao tôi cần nó? Tại sao tôi không thể viết API của riêng mình?


3
Bạn đang nói về khung API Web mới ? Điều đó tách biệt với MVC. Nếu đó là những gì bạn muốn nói, hãy xem bài viết trên blog này của Rick Strahl.
Oded

1
@Oded: Bạn nên đặt điều này như một câu trả lời.
James P. Wright

Điều thú vị nhất về API Web (mà tôi không thấy được liệt kê ở bất kỳ đâu trong câu trả lời được chấp nhận hoặc liên kết ở trên) là nếu bạn trả về một IQueryable <> các phương thức web của bạn sẽ tự động hỗ trợ cú pháp truy vấn OData! - Trong ASP.NET Web Stack chung "API Web" và "SignalR" đang "thay thế" WCF (Tôi không chắc chúng có được xây dựng trên đỉnh WCF hay không, nhưng WCF đã bị xóa khỏi tất cả các sơ đồ khối và được thay thế với "API Web" và "SignalR").
BrainSlugs83

Why can't I just write my own API?Chỉ với ASP.NET MVC thông thường? Bạn có thể. API ASP.NET MVC chỉ cung cấp cho bạn thêm các tính năng bổ sung để làm cho nó dễ dàng hơn. Vui lòng xem bên dưới.
Jim G.

Câu trả lời:


16

ASP.NET Web API là một khung "không có ý kiến" để xây dựng Dịch vụ HTTP bất kể REST hay RPC. Đây là triển khai tốt nhất của RFC 2616 (HTTP Spec).

Chắc chắn bạn có thể xây dựng API của riêng mình nhưng API Web ASP.NET:

  • Được xây dựng dựa trên mô hình Búp bê Nga cho phép thêm các mô-đun giống như lego vào đường ống HTTP
  • Làm cho công dân hạng nhất HTTP để tất cả các tiêu đề phổ biến được gõ mạnh (không chỉ giá trị tên) và giúp phân tích cú pháp chúng
  • Cho phép lưu trữ cả ASP.NET (IIS) hoặc tự lưu trữ
  • hỗ trợ đàm phán nội dung, các loại phương tiện truyền thông, ...
  • Là Async từ trên xuống dưới
  • Sử dụng một cách tiếp cận tương tự cho các khách hàng với HttpClient

6

API Web mới của Microsoft là, như tên của nó gợi ý tất cả về việc viết API có thể truy cập web, với REST bị bẻ cong.

Rick Strahl gần đây đã viết blog về nó và có một phân tích tốt về thời điểm sử dụng MVC vs Web API.

Những thứ như được xây dựng trong đàm phán nội dung, một số định dạng được xây dựng và nhiều hơn nữa.


6

Nói tóm lại: API Web ASP.NET đang biến REST trở thành công dân hạng nhất trong .NET , mà WCF không thực sự có thể nắm lấy. Như bạn có thể biết, ASP.NET Web API là một khung công tác for building web APIstrên .NET Framework.

Một trong những nỗi thất vọng lớn nhất mà chúng tôi gặp phải khi các nhà phát triển web là phải đối mặt với các cấu hình vô tận với WCF. Ý tôi là, WCF rất tuyệt nhưng chưa được REST chấp nhận từ khuôn khổ API Web WCF . Có một thứ gọi là REST Starter Kit nhưng cuối cùng nó đã chết.

Tuy nhiên, ASP.NET Web API là một khung công tác thế hệ tiếp theo giúp dễ dàng xây dựng các dịch vụ HTTP tiếp cận được nhiều khách hàng, chẳng hạn như trình duyệt và thiết bị di động. Nó là một nền tảng lý tưởng để xây dựng các ứng dụng RESTful trên .NET Framework. Để biết thêm thông tin và các bài đăng blog tuyệt vời, hãy truy cập trang blogger ASP.NET Web API


1
Nếu bạn nghiên cứu lịch sử của API Web, nó đã bắt đầu trong WCF.
SASS_Shooter

Vâng, nó là một sự thay thế nhẹ của nó với các tính năng quan trọng để dễ dàng cấu hình và hợp lý hóa phát triển ứng dụng.
Yusubov

@Yusobov: Điều này không hoàn toàn đúng - Ngoài ra còn có Dịch vụ dữ liệu WCF khá tốt trong việc xây dựng apis REST tương thích Odata. Tôi đã sử dụng nó trong môi trường sản xuất và nó thực sự hoạt động tốt khi được thiết lập. Vấn đề duy nhất với điều đó là khó thiết lập hơn nhiều so với API Web ASP.NET.
Adrian Grigore

1

ASP.NET Web API là một khung giúp dễ dàng xây dựng các dịch vụ HTTP tiếp cận nhiều khách hàng, bao gồm cả trình duyệt và thiết bị di động.

ASP.NET Web API là một nền tảng lý tưởng để xây dựng các ứng dụng RESTful trên .NET Framework.

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


BIÊN TẬP:

Cụ thể, API Web ASP.NET bao gồm:

  1. Một đường dẫn ASP.NET được sắp xếp hợp lý với chi phí giảm nếu bạn chọn lưu trữ dịch vụ của mình trong IIS.
  2. HttpClient giúp khách hàng dễ dàng kết nối với API Web hơn.

Tôi có thể tự đọc những điều đó. Câu hỏi của tôi là những gì điểm? Có gì khác nhau khi sử dụng API Web và sử dụng MVC thông thường nhưng có JsonResults thay vì ViewResults?
James P. Wright

1. Trước MVC 4, bạn có thể trả về JSONResult mà không gặp vấn đề gì. MVC 4 chỉ đơn giản duy trì khả năng đó, bao gồm một số lớp trợ giúp khác để làm cho nó dễ dàng hơn và hợp lý hóa đường ống dẫn ASP.NET để giảm chi phí khi bạn biết rằng bạn sẽ không cần phải trả về ViewResults.
Jim G.

1
Ngoài ra, vì đây là bản cập nhật hiệu quả cho API Web WCF, bạn không muốn dùng IIS. Bạn có thể tự lưu trữ một dịch vụ API Web ASP.NET nếu bạn thích. wcf.codeplex.com/ từ
Jim G.

-2

Ngày nay, một ứng dụng dựa trên web là không đủ để tiếp cận khách hàng của nó. Mọi người rất thông minh, họ đang sử dụng các thiết bị iphone, di động, máy tính bảng, vv trong cuộc sống hàng ngày. Các thiết bị này cũng có rất nhiều ứng dụng để làm cho cuộc sống dễ dàng. Trên thực tế, chúng tôi đang chuyển từ web sang thế giới ứng dụng. Vì vậy, nếu bạn muốn hiển thị dữ liệu dịch vụ của mình cho các trình duyệt và cũng như tất cả các ứng dụng thiết bị hiện đại này một cách nhanh chóng và đơn giản, bạn nên có một API tương thích với các trình duyệt và tất cả các thiết bị này.


điều này dường như không thêm bất cứ điều gì đáng kể vào các điểm được thực hiện và giải thích trong 4 câu trả lời trước
gnat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.