2011-07-03 7 views
5

Tôi có một trang web được xây dựng với MVC và giờ tôi muốn xây dựng một API cho trang web này, để cho phép người dùng sử dụng API này để triển khai các trang web, dịch vụ web, plugin và tiện ích mở rộng trình duyệt khác nhau.Điều nào tốt hơn cho việc xây dựng một API cho trang web của tôi: các dịch vụ dữ liệu MVC hoặc Ado.net?

Tôi đã thực hiện điều này article nhưng chưa được sử dụng.

Thông tin chung về API tôi muốn tạo:
Người dùng API sẽ có tên người dùng và mật khẩu chính để có thể sử dụng API.
API sẽ cho phép người dùng thêm nội dung vào DB của tôi sau khi xác thực dữ liệu này.
API sẽ cho phép người dùng tải hình ảnh lên máy chủ của tôi.
API cần có URL thân thiện.

Công nghệ nào sẽ phù hợp với trường hợp của tôi?

Cũng sẽ giúp tôi quyết định là biết công nghệ đằng sau API stackoverflow là gì?

+6

nếu bạn đã có trang web được xây dựng trong ASP.NET MVC, bước tới [OData và WCF Data Services] (http://msdn.microsoft.com/en-us/data/aa937697) (những gì bạn gọi " Dịch vụ dữ liệu ADO.NET ") phát sinh một khoản phí khủng khiếp trừ khi bạn đặc biệt muốn nhắm mục tiêu OData và/hoặc tận dụng các đặc điểm dịch vụ dữ liệu WCF khác. Thêm một lớp API RESTful trong MVC là tầm thường. – bzlm

+0

+1 vào nhận xét ở trên, hoàn toàn đồng ý. – RPM1984

+0

Ok, những gì về stackoverflow.com, nó là mvc, bạn có biết api của nó được xây dựng với những gì? –

Trả lời

8

Hãy thử WCF Web Api. Nó có tất cả những thứ tuyệt vời để tạo ra api RESTFul tốt, và nó đáp ứng tất cả các yêu cầu của bạn.

  • Bạn sẽ sử dụng ủy quyền http cơ bản hoặc một số tùy chỉnh, đơn giản như vậy.
  • Bạn sẽ hiển thị các url rất cơ bản để tạo dữ liệu, xác thực và trả về phản hồi, tầm thường.
  • RESTFul có nghĩa là url thân thiện -s.

Ý tưởng chung là thư viện này cung cấp cho bạn các tùy chọn thao tác mạnh mẽ từ khi bắt đầu yêu cầu cho đến khi phản hồi của nó trở lại. Đây là api HTTP chính cho .NET Framework và WCF và nó tiếp tục sự phát triển của nó.

+0

Theo FAQ, nó chưa được phép sử dụng trong môi trường sản xuất. – muratgu

1

Trừ khi bạn có lý do rất thuyết phục để sử dụng WCF, tại sao không chỉ hiển thị dữ liệu của bạn thông qua trang ASP.NET MVC. Bạn có thể dễ dàng trả về JSON hoặc bất kỳ định dạng dữ liệu không phải HTML nào khác phù hợp với nhu cầu của bạn từ bên trong ASP.NET MVC.

Tùy thuộc vào mức độ tương tự giữa giao diện giữa trang web và API của bạn, bạn có thể sử dụng các bộ điều khiển/hành động hiện có của mình hoặc tạo các bộ điều khiển/hành động mới. Về lý thuyết nếu yêu cầu HTTP chỉ ra "application/json" bạn có thể trả về JSON cho những yêu cầu đó và thực hiện ... nhưng trong thực tế bạn có thể cần phải tinh chỉnh điểm kết thúc (controller/actions) để làm cho chúng thân thiện với người tiêu dùng (các nhà phát triển khác nhắm mục tiêu API của bạn)

WCF rất tốt và giàu tính năng nhưng không phải ai cũng quen thuộc với nó. Bạn có thể phải chịu một đường cong học tập nhận được một sự hiểu biết tốt về nó. Một lần nữa, nếu có một lý do rất hợp lệ cho nó thì nó có giá trị nó, nhưng từ những gì bạn đang mô tả bạn có lẽ sẽ chỉ là tốt với ASP.NET MVC đồng bằng.

3

Bạn có cân nhắc sử dụng OpenRasta không?

Cách tiếp cận sạch sẽ, ReSTful của nó làm cho nó lý tưởng để phát triển các API dựa trên web trong .NET.