WebEntity

モジュールパス: NodeJS/alier_sys/_WebEntity.js

概要


このクラスは Web サーバ上のリソースを表現するためのクラス群の基底となる抽象クラスです。

WebEntity クラスを継承するクラスには WebApi クラスと WebResource クラスがあります。前者の WebApi クラスは、REST API を実装するためのクラスであり、後者の WebResource はサーバ上の静的なファイルなどへのアクセスを可能にするためのクラスです。WebApi クラスと WebResource クラスの違いは次の通りです:

項目 WebApi WebResource
レスポンスボディの形式 JSON 形式 (application/json) インスタンスごとに設定された形式
HTTP メソッド POSTPUT など GET のみ
クラス 抽象クラス 具象クラス
パスの前方一致パターン[^path-forward-pattern] できない できる

のようなパターンのこと。

WebEntity クラスは、その派生クラス WebApiWebResource を通じてコンストラクタが公開されていますが、 WebEntity クラスを提供するモジュールは非公開であり直接インポートすることはできません。

コンストラクタ


構文

new WebEntity({ path }) => WebEntity
new WebEntity({ path, isCaseSensitive }) => WebEntity
new WebEntity({ path, isCaseSensitive, authProtocols }) => WebEntity

引数

  • o: object

    引数をまとめたオブジェクトです:

    • path: string

      Web API / リソースのパスまたはパスのパターンを一意に表す文字列です。

    • isCaseSensitive: boolean

      パスの一致を判定する際に大文字小文字の区別をするかどうかです。true なら大文字小文字の区別をし、false なら区別をしません。

    • authProtocols: AbstractAuthProtocol[] | null

      認証プロトコルを実装するオブジェクトのリストです。生成する WebEntity がサポートする認証方式のリストを与えます。

例外

  • SyntaxError
    • このクラスを直接 new した場合。
  • TypeError
    • o が非 null のオブジェクトでなかった場合。
    • o.path が文字列でなかった場合。
    • o.path"*/" で始まる文字列だった場合。
    • o.isCaseSensitiveboolean でなかった場合。
    • o.authProtocolsnull でもオブジェクトでもなかった場合。
    • o.authProtocols が列挙可能でない非 null のオブジェクトだった場合。
    • o.authProtocolsAbstractAuthProtocol でない値を成分に持つ列挙可能オブジェクトだった場合。

解説

WebEntity のコンストラクタは WebEntity クラス自身に対して直接呼び出すことはできません。WebEntity を利用する場合、必ずその派生クラスを実装し、派生クラスに対して new 演算子を作用させる必要があります。


メソッド


getAuthProtocol()

  • 指定の Web 認証スキームに対応する認証プロトコルを実装するオブジェクトを取得します。

getChallenge()

  • 指定の Web 認証スキームに対応するチャレンジ[^challenge]を取得します。

getChallenges()

  • 対象の WebEntity が提供するすべての認証プロトコルのチャレンジのリストを取得します。

verify()

  • クライアントから送信されたリクエストを検証します。

プロパティ


path

Web API のエンドポイントやリソースの URL のパス部分を表すオブジェクトです。

Pattern

詳細

path の値は Router クラスでクライアントからのリクエストをルーティングするために使用されます。

そのため、メンバ変数 path の値は Router の管理する WebApi インスタンスの間で 一意 である必要があります。

ここで「一意である」とは Pattern が表すパターンが互いに重複しないことを意味します。

例えば "/foo/bar""/foo" はそれぞれ異なる1つのパスを表すので重複していませんが、"/foo/:var":var 部分がワイルドカードであるため、"/foo/bar" と重複します。


authProtocols

認証プロトコルを実装するオブジェクトのリストです。

Iterator<AbstractAuthProtocol>

詳細

authProtocols の値は Router クラスが受け取ったリクエストに対して、Web 認証を実施するために使用されます。


authRequired

Web 認証を要求するかどうかです。

boolean

詳細

true なら対象の WebEntity は Web 認証を要求し、false なら Web 認証を要求しません。

この値は authProtocols が空でないかどうかと一致し、authProtocols が空のリストを与える場合、authRequiredfalse となります。

authRequired の値は Router クラスが受け取ったリクエストに対して、Web 認証を実施するかどうかの判定に使用されます。