Microsoft SQL ServerのテーブルのデータをWebサービスとして公開する.NETツールはありますか?コードを書く必要がありますか?サンプルはありますか?データを公開する方法については何をお勧めしますか?
WCF Data Services を使用することもできますが、 Antonによる と同様に、データベース全体または部分的なデータベースへの直接パスを提供することをお勧めします。
別のオプションは、「顧客を追加することはできますが、請求書を削除することは許可されていません」のような小さな操作セットのみを許可するデータアクセスレイヤーを構築することです。
SQL Server 2005以降、ネイティブXML Webサービスをデータベースから直接公開できます。
SQL Serverは、HTTPエンドポイントを介してHTTP SOAP要求をネイティブにリッスンするように構成できます。一般に、ストアドプロシージャまたはユーザー定義関数をHTTPエンドポイントとして公開する必要があるため、少しのコーディングが必要です。 。しかし、例から理解するのは非常に簡単なはずです。
通常は、次のようにストアドプロシージャを作成することから始めます。
CREATE PROCEDURE [dbo].[getContact]
@ID [int]
AS
BEGIN
SELECT * FROM [AdventureWorks].[Person].[Contact] WHERE ContactID = @ID
END;
そして、次のようにHTTPエンドポイントを定義します。
CREATE ENDPOINT SQLEP_GetContact
STATE = STARTED
AS HTTP
(
PATH = '/Contact',
AUTHENTICATION = (INTEGRATED),
PORTS = (CLEAR),
SITE = 'localhost'
)
FOR SOAP
(
WEBMETHOD 'ContactInfo' (NAME='AdventureWorks.dbo.getContact'),
BATCHES = DISABLED,
WSDL = DEFAULT,
DATABASE = 'AdventureWorks',
NAMESPACE = 'http://AdventureWorks/Contact'
);
エンドポイントを作成したら、サーバーにHTTPリクエストを送信して、エンドポイントが応答していることを確認できます:http://localhost/Contact?wsdl
。
エンドポイントを変更または停止するには、ALTER ENDPOINT
コマンドを使用できます。
ALTER ENDPOINT SQLEP_GetContact
STATE = STOPPED;
次の記事をチェックして続行してください。
UPDATE:以下の Ed Harper のコメントに続き、ネイティブXML WebサービスはSQL Server 2008で非推奨になっていることに注意してください( 2009年11月)、この機能はSQL Serverの将来のバージョンで削除される予定です。マイクロソフトは、代わりにWCF Webサービスの使用を提案しています。ソース: MSDN-ネイティブXML Webサービス:SQL Server 2008で非推奨
Scott Hanselmanが、Visual Studio 2010を使用してデータベースからOData/Open Data/WCF Data Serviceを作成する方法を説明します。
http://www.hanselman.com/blog/CreatingAnODataAPIForStackOverflowInlusionXMLAndJSONIn30Minutes.aspx
.net Framework 3.5以降で利用可能なWCF Data Servicesについて読んでみたいと思います。