WebEntity
モジュールパス: NodeJS/alier_sys/_WebEntity.js
概要
このクラスは Web サーバ上のリソースを表現するためのクラス群の基底となる抽象クラスです。
WebEntity
クラスを継承するクラスには WebApi
クラスと WebResource
クラスがあります。前者の WebApi
クラスは、REST API を実装するためのクラスであり、後者の WebResource
はサーバ上の静的なファイルなどへのアクセスを可能にするためのクラスです。WebApi
クラスと WebResource
クラスの違いは次の通りです:
項目 | WebApi |
WebResource |
レスポンスボディの形式 | JSON 形式 (application/json ) |
インスタンスごとに設定された形式 |
HTTP メソッド | POST や PUT など |
GET のみ |
クラス | 抽象クラス | 具象クラス |
パスの前方一致パターン[^path-forward-pattern] | できない | できる |
のようなパターンのこと。
WebEntity
クラスは、その派生クラス WebApi
と WebResource
を通じてコンストラクタが公開されていますが、 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.isCaseSensitive
がboolean
でなかった場合。o.authProtocols
がnull
でもオブジェクトでもなかった場合。o.authProtocols
が列挙可能でない非null
のオブジェクトだった場合。o.authProtocols
がAbstractAuthProtocol
でない値を成分に持つ列挙可能オブジェクトだった場合。
解説
WebEntity
のコンストラクタは WebEntity
クラス自身に対して直接呼び出すことはできません。WebEntity
を利用する場合、必ずその派生クラスを実装し、派生クラスに対して new
演算子を作用させる必要があります。
メソッド
getAuthProtocol()
- 指定の Web 認証スキームに対応する認証プロトコルを実装するオブジェクトを取得します。
getChallenge()
- 指定の Web 認証スキームに対応するチャレンジ[^challenge]を取得します。
getChallenges()
- 対象の
WebEntity
が提供するすべての認証プロトコルのチャレンジのリストを取得します。
verify()
- クライアントから送信されたリクエストを検証します。
プロパティ
path
Web API のエンドポイントやリソースの URL のパス部分を表すオブジェクトです。
型
詳細
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
が空のリストを与える場合、authRequired
は false
となります。
authRequired
の値は Router
クラスが受け取ったリクエストに対して、Web 認証を実施するかどうかの判定に使用されます。