Qmonus Documents /
ApiFront /4.API

API

ApiFrontが提供するAPI一覧です。

  • GET /session
  • POST /logout , /signout
  • GET /auth/[XXX]/callback
  • GET /echo (deprecated)
  • POST /echo (deprecated)

  •  

    ログインセッション情報取得API

    GET /session

    ログインセッションの詳細情報を返却します。
    認証済ユーザ情報や、バックエンドへのアクセストークンやプロキシパス、その他コンフィグ情報の参照が可能です。起動パラメータによって返却される内容は異なります。
    また、起動パラメータの authentication.generator に指定されたトークンジェネレータが存在する場合は、/session APIコール時にアクセストークンの再生成が行われます。この場合、authentication.transparentTokens の設定値によって以下のように挙動が異なる点に注意が必要です。

    • authentication.transparentTokens : false [デフォルト]

    ApiFrontでのトークンインジェクションは行わないため、SPA側からのAPIリクエストにtokenを埋め込む必要があります。したがってSPAの実装では、/session API のレスポンスのtoken情報を解析する必要があります。

    • authentication.transparentTokens : true

    ApiFrontでトークンインジェクションを行うため、SPA側からのAPIリクエストではtokenを全く意識する必要がありません。そのため、/session API のレスポンスにはtoken情報が含まれません。

     

    Request (query)

    項番 プロパティ 説明
    1 refresh boolean セッション情報の取得に合わせて、アクセストークンの再生成を行います。authentication.transparentTokensがfalseの場合は、このクエリの指定有無にかかわらず、常にトークンの再生成が行われます。
    2 entirety boolean レスポンスに、同一account_id が保持するセッション一覧(sessions)を含めて返却します。この配列の値が2つ以上の場合は、同一アカウントでの複数ログイン状態と判定できます。この機能は session storeがredisの場合のみ有効になります。

     

    Response (body)

    項番 プロパティ 説明
    1 id string ログインセッションを識別するIDです
    2 auth object 認証プロバイダで認証されたログインユーザのアカウント情報です
    2-1 auth.account_id string ログインアカウントのIDです
    2-2 auth.account_role string ログインアカウントのロール名です
    2-3 auth.avatar string ログインアカウントのアイコン画像へのリンクです
    2-4 auth.strategy string 利用している認証方式です(OAuth/OpenIDなど)
    2-5 auth.provider string 認証プロバイダの名称です
    2-6 auth.properties object 認証プロバイダから取得できる認証情報です。利用するプロバイダによって内容は異なります
    2-7 auth.expires any アカウントの有効期限です(Qmonus-SDK連携の場合のみ)
    2-8 auth.metadata any アカウントのメタデータです(Qmonus-SDK連携の場合のみ)
    2-9 auth.accessToken any バックエンドAPIサーバのアクセストークンです(Qmonus-SDK連携の場合のみ)
    2-10 auth.credentialExpires any バックエンドAPIサーバのアクセストークンの有効期限です(Qmonus-SDK連携の場合のみ)
    3 backend string APIバックエンドへのプロキシパスです。起動設定でプロキシーパス(backend.proxypath)が指定されていない場合は、APIバックエンド(backend.target)の値が返却されます
    4 configs object ApiFrontの起動ファイルで指定されたカスタム情報を返却します
    5 query string SPAレンダリング時にURLで指定されたquery情報が格納されます
    6 params string SPAのレンダリング用のパス(content.route )で変数を許容する場合( content.route=/:tid/v1/:rid のような指定 )に、実際にURLリソースで指定された情報が格納されます。( content.route=/:id/ のような指定が可能 )
    7 sessions array 同一account_idのセッションIDが格納されます。(リクエスト時にクエリで、entirety=true を指定した場合のみ)

    サンプルレスポンス(SDKポータル認証連携の場合)

    json
    { "id": "zqS7PBARlU9N55kYYCzA63VMMG9jYru6", "auth": { "account_id": "hogfuga@axis-dev.io", "account_role": "admin", "avatar": "https://lh3.googleusercontent.com/a-/XXXXXXX", "displayName": "hogfuga", "accessToken": "xxxx", "credentialExpires": "2021-06-22T06:24:43.943Z", "expires": null, "metadata": { "status": "Active" }, "properties": { "emails": [ { "value": "hogfuga@axis-dev.io", "verified": true } ], "roles": [] }, "provider": "qmonus", "strategy": "qmonus" }, "backend": "/v1/", "configs": { "param1_enum" : ["dev-001" , "dev-002" ], }, "params": {}, "query": {}, "sessions": [ "zqS7PBARlU9N55kYYCzA63VMMG9jYru6" ] }

     

    backend プロパティの使い方
    • SPA側では/sessionで取得した値に基づき、APIコールのベースパスを決定する仕組みを実装しておくことで、デプロイ環境に依存しないSPAの開発を行うことができます。例えば、SPA側で
    javascript
    let baseURL = await http.get("/session").backend; await http.get( `${baseURL}/hoge` )

    のように、ajaxのURLパスで指定するパスをsessionAPIから取得したベースパスからの指定にしておくことで、backend側のURL変更や、CORSを利用した直接アクセスに変更するなどの場合でも、SPA側の修正を行うことなく設定のみの変更で対応が可能になります。

    sessions プロパティの使い方
    • sessionsプロパティでは、同一アカウントIDで利用中のセッション数が取得できます。 ApiFrontのセッションはcookieによる管理になりますので、ブラウザ単位で1セッションになります(ブラウザの設定にもよりますが、複数タブでも別Windowでも1セッションとなります)
      つまり、ここで2件以上のセッションが返却される場合は、別の端末もしくは別の種類のブラウザで同一ユーザがログインしていることを示します。この値をSPA側で検証することで、同一ユーザの別端末ログイン状態を処理することも可能です。

     

    ログアウトAPI

    POST /logout , /signout

    セッション情報を開放する(ログアウト)APIです。該当セッションの情報がセッションストアからクリアされます。ただし連携先の認証プロバイダーの情報からは削除されません
    ちなみにmethodは、GETでも可能です。

     

    認証連携API

    GET /auth/[XXX]/callback

    外部認証プロバイダ連携で必要なコールバックAPIです。
    外部認証プロバイダのOAuthクライアント設定で指定するコールバックURLに含めてください。

    ※ XXXはコンフィグで指定した、authentication.name もしくは config.authentication.strategy になります。

     

    ファイル生成API

    パラメータで指定したデータを、ブラウザのファイルダウンロード機能でダウンロードさせる機能です。
    ※ ApiFrontの内部処理では、拡張子が pdf/png/jpeg/jpg のファイル生成に、puppeteer@1.20 を利用していますが、デフォルトではpuppeteerはバンドルされないため、この機能は利用できません。ご利用の際はサポートに問合せてください。

    GET /echo (deprecated)

    Request (query)

    項番 プロパティ 説明
    1 template string 利用するテンプレートを指定します。利用するテンプレートは事前に起動パラメータで指定しておく必要があります。
    2 params string テンプレートで使用するパラメータを指定できます。
    3 filename string ダウンロードするファイル名です。

    Sample Request


    curl https://api-front-xxxx.sdk-lab.qmonus.net/echo?template=preset&filename=test.pdf

    POST /echo (deprecated)

    Request (body)

    項番 プロパティ 説明
    1 template string 利用するテンプレートを指定します。利用するテンプレートは事前に起動パラメータで指定しておく必要があります。
    2 params object テンプレートで使用するパラメータを指定できます。
    3 filename string ダウンロードするファイル名です。
    5.FAQ
    3.起動パラメータ