You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

ここまでの「ユーザー認証」の実装で、必要となる機能は果たされます。ただし、何かの問題がありエラーが発生した場合、その内容までは分かりません。ですから、.NET コードからエラー・メッセージを取り出すコードを追加してみましょう。

.NET コードはコピー処理の最後に、今回の呼び出しの状態を示す JSON オブジェクトを送信します。今後独自のサービスを作成する際も、今回と同じ形式を取るようにしてください。ステータスには次の 2 つの値があります。

  • ブール値はサービスが正常に完了したかどうかを示します。
  • 文字列の値はサービス完了に失敗した場合のエラー・メッセージを示しています。

呼び出しのステータスを表示するための再利用可能パーツ ExternalServiceInvocationStatus を作成します。この再利用可能パーツは、すべてのサービスで利用します。

この再利用可能パーツはチュートリアル 2 で作成したものと同じものです。ですから、すでにチュートリアル 2 を終了していれば、この再利用可能パーツは作成されいます。その場合は、以下を飛ばして次のセクションに進んでください。



この新規再利用可能パーツに次のコードを入れます。

Function Options(*DIRECT)
Begin_Com Role(*EXTENDS #PRIM_OBJT)

   * OK & ErrorMessage 値を保持する変数
   Define_Com Class(#PRIM_BOLN) Name(#gOK)
   Define_Com Class(#PRIM_DC.UnicodeString) Name(#gErrorMessage)
   * プロパティ: OK & ErrorMessage
   Define_Pty Name(OK) Get(*AUTO #gOK) Set(*AUTO #gOK)
   Define_Pty Name(ErrorMessage) Get(*AUTO #gErrorMessage) Set(*AUTO #gErrorMessage)
   * OK ステータス & エラー・メッセージを HTTP 応答オブジェクトから読み込むルーチン
   Mthroutine Name(FromHttpResponse)
      Define_Map For(*INPUT) Class(#XPRIM_HttpResponse) Name(#HttpResponse) Pass(*BY_REFERENCE)
      Define_Com Class(#XPRIM_RandomAccessJsonReader) Name(#Json)
      * プロパティ初期化
      #gOK := False
      #gErrorMessage := ''
      * 応答があるかどうか確認…
      If (#HttpResponse.IsSuccessfulRequest)
         * 応答 JSON の読み込み
         #Json.SetSourceHttpResponse HttpResponse(#HttpResponse)
         * 要求が OK ステータス・コードを返したかどうか確認
         If (#HttpResponse.IsSuccessHttpStatusCode)
            #gOK := True
         Else
            * JSON 応答からエラー・メッセージを読み込む
            #gErrorMessage := #Json.ReadStringWithName( 'errorMessage' )
         Endif
      Else
         #gErrorMessage := #HttpResponse.ErrorMessage
      Endif
   Endroutine
End_Com



次は: ユーザー認証メソッドを調整してユーザー HTTP 応答の呼び出しステータスを読み込む

  • No labels