Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere データ・アクセス API » SQL Anywhere Web サービス

 

Web サービスのクイック・スタート

ここでは、新しいデータベースの作成、HTTP サーバが有効の状態での SQL Anywhere データベースの起動、一般的な Web ブラウザを使用したデータベースへのアクセス方法について説明します。

♦  簡単な HTML Web サービスを作成しアクセスするには、次の手順に従います。
  1. コマンド・プロンプトで、次のコマンドを実行して、パーソナル Web サーバを起動します。samples-dir をサンプル・データベースの実際のロケーションと置き換えます。-xs http(port=80) オプションは、HTTP 要求を受信するようにデータベース・サーバに指示します。すでにポート 80 で稼働している Web サーバがある場合は、このデモには 8080 などの別のポート番号を使用します。

    dbeng11 -xs http(port=80) samples-dir\demo.db

    HTTP 通信リンクの多くのプロパティは、-xs オプションのパラメータで制御できます。-xs サーバ・オプションを参照してください。

  2. 適切な -xs オプション・パラメータを指定してデータベース・サーバを起動し、CREATE SERVICE 文を使用して、着信要求に応答するための Web サービスを作成します。

    Interactive SQL を起動します。DBA として SQL Anywhere サンプル・データベースに接続します。次の文を実行します。

    CREATE SERVICE HTMLtable
    TYPE 'HTML'
    AUTHORIZATION OFF
    USER DBA
    AS SELECT * FROM Customers;

    この文は、HTMLtable という Web サービスを作成します。この単純な Web サービスは SELECT * FROM Customers 文の結果を返し、出力は自動的に HTML フォーマットに変換されます。認証がオフになっているので、Web ブラウザからテーブルへのアクセスには許可が不要です。Web サービスの作成CREATE SERVICE 文を参照してください。

  3. Web ブラウザを起動します。

  4. URL [external link] http://localhost:80/demo/HTMLtable にアクセスします。データベース・サーバの起動時に指定したポート番号を使用します。

    Web ブラウザは、データベース・サーバによって返された HTML ドキュメントの本文を表示します。デフォルトでは、結果セットは HTML テーブル形式にフォーマットされます。

♦  簡単な XML Web サービスを作成しアクセスするには、次の手順に従います。
  1. コマンド・プロンプトで、次のコマンドを実行して、パーソナル Web サーバを起動します。samples-dir をサンプル・データベースの実際のロケーションと置き換えます。-xs http(port=80) オプションは、HTTP 要求を受信するようにデータベース・サーバに指示します。すでにポート 80 で稼働している Web サーバがある場合は、このデモには 8080 などの別のポート番号を使用します。

    dbeng11 -xs http(port=80) samples-dir\demo.db

    HTTP 通信リンクの多くのプロパティは、-xs オプションのパラメータで制御できます。-xs サーバ・オプションを参照してください。

  2. 適切な -xs オプション・パラメータを指定してデータベース・サーバを起動し、CREATE SERVICE 文を使用して、着信要求に応答するための Web サービスを作成します。

    Interactive SQL を起動します。DBA として SQL Anywhere サンプル・データベースに接続します。次の文を実行します。

    CREATE SERVICE XMLtable
    TYPE 'XML'
    AUTHORIZATION OFF
    USER DBA
    AS SELECT * FROM Customers;

    この文は、XMLtable という Web サービスを作成します。この単純な Web サービスは SELECT * FROM Customers 文の結果を返し、出力は自動的に XML フォーマットに変換されます。認証がオフになっているので、Web ブラウザからテーブルへのアクセスには許可が不要です。Web サービスの作成CREATE SERVICE 文を参照してください。

  3. Web ブラウザを起動します。

  4. URL [external link] http://localhost:80/demo/XMLtable にアクセスします。データベース・サーバの起動時に指定したポート番号を使用します。

    • localhost:80 使用する Web ホスト名とポート番号を定義します。

    • demo 使用するデータベース名を定義します。ここでは demo.db を使用します。

    • XMLtable 使用するサービス名を定義します。

    Web ブラウザは、データベース・サーバによって返された XML ドキュメントの本文を表示します。フォーマット情報は含まれないため、表示されるのはタグや属性を含んだ未加工 XML です。

  5. また、一般的なプログラミング言語からも XMLtable サービスにアクセスできます。たとえば、次の短い C# プログラムでは XMLtable Web サービスを使用します。

    using System.Xml;
    
    static void Main(string[] args)
    {
      XmlTextReader reader =
        new XmlTextReader( "http://localhost:80/demo/XMLtable" );
    
      while( reader.Read() )
      {
        switch( reader.NodeType )
        {
        case XmlNodeType.Element:
          if( reader.Name == "row" )
          {
            Console.Write(reader.GetAttribute("ID")+" ");
            Console.WriteLine(reader.GetAttribute("Surname"));
          }
          break;
        }
      }
      reader.Close();
    }
  6. さらに、次の例のように Python からも同じ Web サービスにアクセスできます。

    import xml.sax
    
    class DocHandler( xml.sax.ContentHandler ):
      def startElement( self, name, attrs ):
        if name == 'row':
          table_id = attrs.getValue( 'ID' )
          table_name = attrs.getValue( 'Surname' )
          print '%s %s' % ( table_id, table_name )
    
    parser = xml.sax.make_parser()
    parser.setContentHandler( DocHandler() )
    parser.parse( 'http://localhost:80/demo/XMLtable' )

    このコードを DocHandler.py というファイルに保存します。アプリケーションを実行するには、次のようなコマンドを入力します。

    python DocHandler.py
♦  簡単な JSON Web サービスを作成しアクセスするには、次の手順に従います。
  1. コマンド・プロンプトで、次のコマンドを実行して、パーソナル Web サーバを起動します。samples-dir をサンプル・データベースの実際のロケーションと置き換えます。-xs http(port=80) オプションは、HTTP 要求を受信するようにデータベース・サーバに指示します。すでにポート 80 で稼働している Web サーバがある場合は、このデモには 8080 などの別のポート番号を使用します。

    dbeng11 -xs http(port=80) samples-dir\demo.db

    HTTP 通信リンクの多くのプロパティは、-xs オプションのパラメータで制御できます。-xs サーバ・オプションを参照してください。

  2. 適切な -xs オプション・パラメータを指定してデータベース・サーバを起動し、CREATE SERVICE 文を使用して、着信要求に応答するための Web サービスを作成します。

    Interactive SQL を起動します。DBA として SQL Anywhere サンプル・データベースに接続します。次の文を実行します。

    CREATE SERVICE JSONtable
    TYPE 'JSON'
    AUTHORIZATION OFF
    USER DBA
    AS SELECT * FROM Customers;

    この文は、JSONtable という Web サービスを作成します。この単純な Web サービスは SELECT * FROM Customers 文の結果を返し、出力は自動的に JavaScript Object Notation フォーマットに変換されます。認証がオフになっているので、Web ブラウザからテーブルへのアクセスには許可が不要です。Web サービスの作成CREATE SERVICE 文を参照してください。

  3. Web ブラウザを起動します。

  4. URL [external link] http://localhost:80/demo/JSONtable にアクセスします。データベース・サーバの起動時に指定したポート番号を使用します。

    • localhost:80 使用する Web ホスト名とポート番号を定義します。

    • demo 使用するデータベース名を定義します。ここでは demo.db を使用します。

    • JSONtable 使用するサービス名を定義します。

    Web ブラウザは、データベース・サーバから返された JSON 応答ドキュメントの保存を許可します。応答ドキュメントをファイルに保存します。

  5. 応答が含まれているファイルをテキスト・エディタで表示すると、結果セットに対応する次の配列表記を確認できます。

    [
            {
                    "ID": 101,
                    "Surname": "Devlin",
                    "GivenName": "Michaels",
                    "Street": "114 Pioneer Avenue",
                    "City": "Kingston",
                    "State": "NJ",
                    "Country": "USA",
                    "PostalCode": "07070",
                    "Phone": "2015558966",
                    "CompanyName": "The Power Group"
            },
            {
                    "ID": 102,
                    "Surname": "Reiser",
                    "GivenName": "Beth",
                    "Street": "33 Whippany Road",
                    "City": "Rockwood",
                    "State": "NY",
                    "Country": "USA",
                    "PostalCode": "10154",
                    "Phone": "2125558725",
                    "CompanyName": "AMF Corp."
            },
    .
    .
    .
            {
                    "ID": 665,
                    "Surname": "Thompson",
                    "GivenName": "William",
                    "Street": "19 Washington Street",
                    "City": "Bancroft",
                    "State": "NY",
                    "Country": "USA",
                    "PostalCode": "11700",
                    "Phone": "5165552549",
                    "CompanyName": "The Apple Farm"
            }
    ]
クイック・スタートのためのその他の資料

サンプルは samples-dir\SQLAnywhere\HTTP ディレクトリにあります。

その他の例は、CodeXchange ([external link] http://www.sybase.jp/developer/codexchange) から入手できる場合があります。

参照