WebApi

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

--- config: class: hideEmptyMembersBox: true --- classDiagram direction LR WebEntity <|-- WebApi link WebEntity "../webentity.html"

概要


このクラスは Node.js 上で動作するサーバアプリケーションの REST API を実装するための 抽象クラス です。ユーザはこのクラスを直接インスタンス化する代わりに、派生クラスを定義してそのインスタンスとして REST API を定義する必要があります。

通常これらの WebApi 派生クラスのインスタンスは、特定のパスに対して一対一の対応を持ち、複数のインスタンスを同時に持つ必要はありません。

また、このクラスはクライアントアプリケーション上の Frontend/WebApi クラスのカウンタパートになっています。

つまり、クライアント側の Frontend/WebApi からメソッドを呼び出した際、メソッドに渡されたパラメタはそのままサーバ側の対応するメソッドの引数として渡されます。サーバ側のメソッド呼び出しの返値はクライアント側での対応するメソッドの返値となります。

このクラスでは

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • OPTIONS
  • PATCH

に対応するメソッドが定義されています。

これらのメソッドの既定の動作は単に例外を発生させるだけです。なので、ユーザは使用したい HTTP メソッドに対するオーバライドを定義しなければならない一方で、使用しない HTTP メソッドに対して Method Not Allowed を送り返す実装はしないで済みます。

コンストラクタ


構文

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

引数

  • o: { path, isCaseSensitive, authProtocols }

    引数をまとめたオブジェクトです。基底クラス WebEntity.constructor も参照してください。

    • path: string

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

      パターンは完全一致でなければならず、前方一致 / 後方一致を許すワイルドカード ("*") を含むことはできません。

    • isCaseSensitive: boolean

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

    • authProtocols: AbstractAuthProtocol[] | null

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

例外

  • SyntaxError
    • WebApi クラスが直接 new された場合。
    • o.path が完全一致のパターンでなかった(前方一致 / 後方一致のワイルドカードを含んでいた)場合。
  • WebEntity.constructor() の例外も参照してください。

メソッド


継承するメソッド

基底クラス WebEntity から以下を継承していています:


get()

  • HTTP の GET メソッドの要求に対する処理を実装します。
  • HTTP の HEAD メソッドの要求に対する処理を実装します。

post()

  • HTTP の POST メソッドの要求に対する処理を実装します。

put()

  • HTTP の PUT メソッドの要求に対する処理を実装します。

delete()

  • HTTP の DELETE メソッドの要求に対する処理を実装します。

options()

  • HTTP の OPTIONS メソッドの要求に対する処理を実装します。

patch()

  • HTTP の PATCH メソッドの要求に対する処理を実装します。

supports()

  • 対象の WebApi が対象の HTTP メソッドを実装しているかどうかを検査します。

supportedMethodList()

  • 対象の WebApi が実装する HTTP メソッドの配列を取得します。

プロパティ


継承するプロパティ

基底クラス WebEntity から以下を継承しています: