このレッスンの目標は、Web サービスが実行されている SQL Anywhere Web サーバを設定することです。
前提条件
このレッスンでは、このチュートリアルの開始時に、権限のセクションで一覧されているロールと権限を持っていることを前提としています。 チュートリアル:Web サーバを作成し、Web クライアントからアクセスします。
Web サービス定義を含めるために使用する SQL Anywhere データベースを作成します。
dbinit -dba DBA,sql echo |
このデータベースを使用して、ネットワークデータベースサーバを起動します。このサーバは Web サーバとして動作します。
dbsrv16 -xs http(port=8082) -n echo echo.db |
HTTP Web サーバは、ポート 8082 で要求を受信するように設定されます。ネットワークで 8082 が許可されない場合は、異なるポート番号を使用します。
Interactive SQL を使用して、データベースサーバに接続します。
dbisql -c "UID=DBA;PWD=sql;SERVER=echo" |
着信要求を受け入れる新しい Web サービスを作成します。
CREATE SERVICE EchoService TYPE 'RAW' AUTHORIZATION OFF SECURE OFF USER DBA AS CALL Echo(); |
この文は、Web クライアントがサービスに要求を送ると、Echo という名前のストアドプロシージャを呼び出す EchoService という名前の新しいサービスを作成します。Web クライアントのフォーマットがない (RAW) HTTP 応答本文を生成します。別のユーザ ID でログインする場合、そのユーザ ID を反映するように USER DBA を変更する必要があります。
着信要求を処理する Echo プロシージャを作成します。
CREATE OR REPLACE PROCEDURE Echo() BEGIN DECLARE request_body LONG VARCHAR; DECLARE request_mimetype LONG VARCHAR; SET request_mimetype = http_header( 'Content-Type' ); SET request_body = isnull( http_variable('text'), http_variable('body') ); IF request_body IS NULL THEN CALL sa_set_http_header('Content-Type', 'text/plain' ); SELECT 'failed' ELSE CALL sa_set_http_header('Content-Type', request_mimetype ); SELECT request_body; END IF; END |
このプロシージャは、Content-Type ヘッダと Web クライアントに送信される応答の本文をフォーマットします。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |