Đường dẫn dễ dàng đến REST trên SQL Server?


7

Tại nơi làm việc, một trong những cơ sở dữ liệu chính của chúng tôi đang chạy trên MS SQL Server. Tôi nghĩ đó là năm 2008.

Tôi hiện đang truy cập nó thông qua UnixODBC và FreeTDS từ máy chủ Linux. Thật không may, UnixODBC / FreeTDS không được hỗ trợ bởi các quản trị viên của chúng tôi, vì vậy nó thuộc về tôi. Đối với chiến lược dài hạn, tôi muốn chuyển ODBC và chuyển sang HTTP, sử dụng các lệnh gọi SOAP hoặc REST. Việc cài đặt dễ dàng hơn rất nhiều với HTTP và hầu hết các ngôn ngữ đều hiểu nó, ít nhất là Perl, Python và Ruby, mà tôi phát triển.

Chúng tôi đã có một số lượng lớn các cuộc gọi SOAP được thiết lập trên cơ sở dữ liệu cho một số quy trình Java, vì vậy chúng tôi có thể có thể chuyển sang đó khá dễ dàng. Chúng tôi cũng đã thảo luận về REST, điều mà tôi thích vì nó nhẹ hơn. Các DBA của chúng tôi không có bất kỳ giao diện REST nào được thiết lập, vì vậy tôi đã tự hỏi liệu có plugin hay công cụ nào cho SQL Server có thể thực hiện ánh xạ REST đơn giản của các bảng để giúp chúng tôi bắt đầu không. Tôi đã cân nhắc viết một cái gì đó trong Sinatra của Ruby nhưng đó là một điều nữa trên đĩa của tôi.

Tôi đã tìm kiếm "SQL Server + rest" nhưng khá rõ ràng rằng các nhân viên của Google sẽ làm điều sai trái với từ "REST" và, do đó, không tìm thấy bất cứ điều gì đáng giá. Vì vậy, nếu bạn có kinh nghiệm với một cái gì đó cung cấp REST và cảm thấy đó là một công cụ tốt thì hãy hòa nhập.


Tôi không biết REST là gì, nhưng bạn có chắc là bạn đã tìm đủ chưa? blogs.msdn.com/b/sqllive/archive/2008/06/18/... stackoverflow.com/questions/1162780/... stackoverflow.com/questions/4263433/... Đây là những gì tôi thấy :-). Có lẽ điều này có thể giúp đỡ.
Mary

1
REST là cách nhận thông tin bằng cách sử dụng dịch vụ web và đường dẫn cố định. Vì vậy, một URL có thể trông giống như http://somesite/salesorder/3342ab23và sẽ trả về một phần tử XML hoặc JSON của thứ tự bán hàng. Đó chỉ là một hướng dẫn, không phải là một quy tắc khó khăn và nhanh chóng. Nhưng ý tưởng là có một cách dễ dàng để có được thông tin có thể dự đoán được theo chương trình.
jcolebrand

@jcolebrand, chính xác. Hoặc, một yêu cầu POST http://somesite/salesorder/update/3342ab23với các tham số được truyền trong thân.
Tin Man

1
Ôi quá đúng, tôi đã quên đề cập rằng nó liên quan đến các động từ HTML (NHẬN POST PUT DELETE iirc) với các hành động CRUD ...
jcolebrand

@Marian, Cảm ơn bạn đã thử, nhưng tôi đã thấy những cái đó. Tôi có thể viết tất cả các cuộc gọi REST, nhưng tôi rất bận rộn và mong đợi một nhóm khác thực hiện điều đó có nghĩa là điều đó sẽ không xảy ra sớm. Đó là lý do tại sao tôi hỏi cụ thể về một plugin hoặc công cụ có thể cung cấp các cuộc gọi REST thô sơ.
Tin Man

Câu trả lời:


5

Nếu bạn đang sử dụng SQL Server 2008 R2, tôi khuyên bạn nên xem Giao thức dữ liệu mở (còn được gọi là OData). Microsoft cũng có một số Câu hỏi thường gặp về nó và có sẵn thư viện máy khách Java.

Ngoài ra, hãy xem sqlREST , trong đó trưng bày các cơ sở dữ liệu quan hệ bằng cách sử dụng các dịch vụ web và hoạt động với hầu hết các cơ sở dữ liệu có trình điều khiển JDBC.


OOooo, bạn có thể đang ở một cái gì đó ở đó. Cảm ơn.
Tin Man

2

Bối cảnh
từ API RESTful của wikipedia

REST ban đầu được mô tả trong ngữ cảnh của HTTP, nhưng không giới hạn ở giao thức đó. Kiến trúc RESTful có thể dựa trên các giao thức Lớp ứng dụng khác nếu chúng đã cung cấp vốn từ vựng phong phú và thống nhất cho các ứng dụng dựa trên việc chuyển trạng thái biểu diễn có ý nghĩa. Các ứng dụng RESTful tối đa hóa việc sử dụng giao diện đã được xác định trước, được xác định rõ và các khả năng tích hợp sẵn khác được cung cấp bởi giao thức mạng đã chọn và giảm thiểu việc bổ sung các tính năng dành riêng cho ứng dụng mới.

Từ bài viết MSDN Chống mẫu cần tránh trong các ứng dụng N-Tier

REST, hay Chuyển giao trạng thái đại diện, là một loại dịch vụ Web đang nhanh chóng phổ biến. Vì vậy, bạn có thể tự hỏi sự khác biệt giữa dịch vụ RESTful và dịch vụ Web tùy chỉnh và lý do tại sao bạn có thể chọn một loại so với loại khác. Sự khác biệt chính giữa hai loại là các dịch vụ REST là trung tâm tài nguyên trong khi các dịch vụ tùy chỉnh là trung tâm hoạt động. Với REST, bạn chia dữ liệu của mình thành các tài nguyên, cung cấp cho mỗi tài nguyên một URL và triển khai các hoạt động tiêu chuẩn trên các tài nguyên cho phép tạo, truy xuất, cập nhật và xóa (CRUD). Với các dịch vụ tùy chỉnh, bạn có thể thực hiện bất kỳ phương pháp tùy ý nào, điều đó có nghĩa là trọng tâm tập trung vào các hoạt động hơn là các tài nguyên và các hoạt động đó có thể được điều chỉnh theo nhu cầu cụ thể của ứng dụng của bạn.
...
Nếu bạn có thể điều chỉnh dịch vụ của mình vào các ràng buộc của REST, làm như vậy sẽ mua cho bạn rất nhiều lợi thế. Dịch vụ dữ liệu ADO.NET kết hợp với Khung thực thể giúp dễ dàng tạo cả dịch vụ RESTful và máy khách để làm việc với chúng. Khung có thể tự động cung cấp nhiều chức năng hơn cho các dịch vụ RESTful vì các dịch vụ bị hạn chế tuân theo một mẫu cụ thể.

Thực hiện

  • Dịch vụ dữ liệu WCF " Dịch vụ dữ liệu ADO.NET hiển thị dữ liệu, được biểu thị dưới dạng đối tượng Mô hình dữ liệu thực thể (EDM), thông qua các dịch vụ web được truy cập qua HTTP. Dữ liệu có thể được xử lý bằng URI giống như REST "

    Tài liệu này mô tả cách tạo và sử dụng Microsoft® ADO.NET Data Services và thảo luận về các chi tiết khác nhau xung quanh các định dạng URI và tải trọng. Tài liệu này có nghĩa là giới thiệu về Dịch vụ dữ liệu ADO.NET và do đó bao gồm các khía cạnh cốt lõi của công nghệ, thách thức thảo luận về các chủ đề nâng cao hơn cho các tài liệu đồng hành.

    Mục tiêu của Microsoft® ADO.NET Data Services là cho phép các ứng dụng hiển thị dữ liệu dưới dạng dịch vụ dữ liệu có thể được sử dụng bởi các máy khách web trong các mạng công ty và trên internet. Có thể truy cập dịch vụ dữ liệu thông qua các yêu cầu HTTP thông thường, sử dụng các động từ HTTP tiêu chuẩn như GET, POST, PUT và DELETE để thực hiện các thao tác CRUD đối với dịch vụ. Định dạng tải trọng được sử dụng bởi dịch vụ được ứng dụng kiểm soát, nhưng tất cả các tùy chọn đều là các định dạng đơn giản, mở như JSON và Atom / APP.

    Việc sử dụng các công nghệ thân thiện với web làm cho Dịch vụ dữ liệu ADO.NET trở thành lý tưởng cho việc sao lưu dữ liệu cho các ứng dụng kiểu AJAX, Ứng dụng tương tác phong phú và các ứng dụng khác cần hoạt động chống lại dữ liệu được lưu trữ trên web.

  • hoặc để xem phiên bản hoàn toàn tùy chỉnh: Dịch vụ thực thể REST của Canonical "Chứng minh một dịch vụ REST được xây dựng với WCF 4 tuân thủ đầy đủ các thông số HTTP để sử dụng GET, PUT, POST, DELETE và bao gồm các thử nghiệm đơn vị để kiểm tra tuân thủ"


0

Tôi làm việc cho DreamFactory Software và chúng tôi có vài thứ có thể giúp ích. DreamFactory là một API API API mã nguồn mở miễn phí kết nối với bất kỳ cơ sở dữ liệu SQL nào bao gồm SQL Server. Kết nối DB và bạn nhận được 45 dịch vụ thực hiện mọi thứ, bao gồm các thủ tục được lưu trữ, Chế độ xem SQL, v.v. API bộ lọc truy vấn rất rộng và có thứ tự, cam kết và khôi phục, phân trang, bộ lọc và các đối tượng liên quan. DreamFactory 2.0 cũng có khả năng chuyển đổi SOAP.


FYI, SQL Server không phải là một phần của ưu đãi "miễn phí".
dbinott
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.