Format
フォーマットは、Qmonus SDKで利用するjsonschemaのformat
タイプを拡張できるサービスです。プラグイン開発プロジェクト固有の単一パラメータのバリデーションをjsonschemaだけで実現できます。登録したformat
は、API GatewayのAPIルーティングの入出力仕様に設定したり、Scenario
のrequest_validation
のスキーマで設定することでパラメータをバリデーションすることができます。
フォーマットが保有する属性
属性 | 概要 | 備考 |
---|---|---|
name |
フォーマットの名前を指定します。 | ユニークである必要があります。この名前をjsonschemaのformat で指定することで適用されます。 |
category |
フォーマットのカテゴリを指定します。 | カテゴリはフォーマットを分類するための単なるラベルです。 |
code |
フォーマットのチェック関数を記述します。 | チェック関数にはバリデーション対象となる単一パラメータが入力されてきます。 この単一パラメータに対してチェックを行い、バリデーションがOKの場合は True 、NGの場合はFalse を返却する関数を記述してください。 |
サンプル
- フォーマットの
code
は以下のように定義します。
# ハイフンなしのUUID形式であることをバリデーションするフォーマットの例
def non_hyph_uuid(v):
return True if re.compile(r"^[a-fA-F0-9]{32}\Z").match(v) else False
- jsonschemaで利用する方法は、以下のように
format
キーに指定するだけです。
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "non_hyph_uuid"
}
},
"required": [
"id"
]
}
Tip
作成したフォーマットが正しく動作するかテストする場合は、Format
組込みオブジェクトを使用してください。
Format
組込みオブジェクトの詳細は、Docs » リファレンス » ビルトインオブジェクト
を参照してください。
>>> print(Format.non_hyph_uuid(uuid.uuid1().hex))↵
... ↵
↵
True
>>>