USERDATA API REST API

EXTDATA API

K2HR3 REST APIのユーザ定義のEXTRA DATA SCRIPTに関連するAPI群です。

このAPIは、ユーザが定義したテンプレートを展開し、その展開したデータを返すAPIです。
ユーザは、K2HR3 APIの設定(コンフィグレーション)で、EXTDATA APIのエンドポイントの情報、テンプレート等を指定します。
テンプレートには、RoleのYRNパス、RoleToken、K2HR3 APIサーバーURIなどを変数として定義できます。
EXTDATA APIのエンドポイントは、registerpath値(ROLE APIのRoleToken取得のAPIから返された文字列)を含むURIとなっています。
これにより、指定されたRoleに応じ、動的にテンプレートを展開したデータを得ることができます。

以下は、K2HR3 APIの設定(コンフィグレーション)の例です。

{
  ...
  ...

  'extdata': {
    'dummy': {                                                // Extra data API(key=suburi) for trove k2hdkc
      'baseuri':     'https://localhost',                     // URI
      'template':    'config/extdata-dummy.sh.templ',         // Template for Shell part
      'useragent':   'dummy-client'                           // Allowed user-agent(can be omitted: default is allowed all)
      'contenttype': 'text/x-shellscript; charset="us-ascii"' // Response Content-Type(can be omitted: default is 'text/plain')
   },
   ...
   ...
 },
 ...
 ...
}

このAPIは、USERDATA APIのユーザ定義版として利用できます。

GET(Extdata)

ユーザ定義のテンプレートをRoleに応じて展開したデータとして取得します。
例えば、ユーザ定義のテンプレートとしてシェルスクリプトを定義することができます。
このシェルスクリプトのテンプレートに、RoleTokenなどの変数を定義することで、Roleに応じた専用のスクリプトとして取得することができます。

Endpoint(URL)

http(s)://API SERVER:PORT/v1/extdata/uripath/registerpath

Content-Type: application/octet-stream
User-Agent: <Allowed User Agent>
Accept-Encoding: gzip

URL Path

URL Arguments

なし

Response status

200、40x

Response(Gzip/Text)

Gzip圧縮された場合とTextの場合は共に内容は同じです。(Gzip圧縮されたかどうかだけの違いです)

レスポンス(正常)

正しいURIパスが指定され、ROLE名、ROLEトークンも問題がない場合には、テンプレートが展開されたデータが返されます。

例:テンプレート

#/bin/sh

ROLE_NAME={{= %K2HR3_ROLE_NAME% }}
ROLE_TENANT={{= %K2HR3_ROLE_TENANT% }}
ROLE_TOKEN={{= %K2HR3_ROLE_TOKEN% }}
K2HR3_API_HOST={{= %K2HR3_API_HOST_URI% }}
ERROR_MSG={{= %K2HR3_ERROR_MSG% }}

echo "ROLE_NAME:      ${ROLE_NAME}"
echo "ROLE_TENANT:    ${ROLE_TENANT}"
echo "ROLE_TOKEN:     ${ROLE_TOKEN}"
echo "K2HR3_API_HOST: ${K2HR3_API_HOST}"
echo "ERROR_MSG:      ${ERROR_MSG}"

exit 0

例:レスポンス
ROLE_NAME=yrn:yahoo:::mytenant:role:myrole
ROLE_TENANT=yrn:yahoo:::mytenant
ROLE_TOKEN=9b7754271286ee8dd68fc7996937f72d788b81b28c071333ded449b2d824636b
K2HR3_API_HOST=https://localhost:3000
ERROR_MSG=null

echo "ROLE_NAME:      ${ROLE_NAME}"
echo "ROLE_TENANT:    ${ROLE_TENANT}"
echo "ROLE_TOKEN:     ${ROLE_TOKEN}"
echo "K2HR3_API_HOST: ${K2HR3_API_HOST}"
echo "ERROR_MSG:      ${ERROR_MSG}"

exit 0

レスポンス(エラー時)

エラーが発生した場合には、40x系ステータスと以下のボディを返します。

{
    result:       <false>
    message:      <error message string>
}
USERDATA API REST API