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
>>>