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:stringWeb API / リソースのパスまたはパスのパターンを一意に表す文字列です。
-
isCaseSensitive:booleanパスの一致を判定する際に大文字小文字の区別をするかどうかです。
trueなら大文字小文字の区別をし、falseなら区別をしません。 -
authProtocols:AbstractAuthProtocol[]|null認証プロトコルを実装するオブジェクトのリストです。生成する
WebEntityがサポートする認証方式のリストを与えます。
-
例外
SyntaxError- このクラスを直接
newした場合。
- このクラスを直接
TypeErroroが非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 認証を実施するかどうかの判定に使用されます。