コンテンツにスキップ

judgement

プロパティ差分情報を元に ステータス(Same/Different)を決定します。

ignore

以下2つの情報を生成します。

  • configで指定したプロパティを無視した上で判定したステータス
  • 無視したプロパティのキー と 無視するために参照した設定名

Warning

既に同レイヤーのアドオンでSameと判定されている場合、本アドオンは実行されません。

Config

Definitions

Root
Key Type Description Example Default
ignores Ignore[] 無視設定
Ignore
Key Type Description Example Default
title (string) タイトル IDは毎回変わるので無視
conditions Condition[] 本設定を反映させるRequestの条件

titleについて

titleが同じものは同一条件として扱われます。

Condition
Key Type Description Example Default
when (string) 条件式
"req.path == '/test'"
added (Case[]) 追加されていても無視するプロパティのリストと条件
changed (Case[]) 変更されていても無視するプロパティのリストと条件
removed (Case[]) 削除されていても無視するプロパティのリストと条件
whenについて

Template表記に対応しています。
プロパティは以下を使用できます。

key Type Description
req Request リクエスト情報
res_one Response oneのレスポンス情報
res_other Response otherのレスポンス情報
dict_one (dict) oneのプロパティ情報
dict_other (dict) otherのプロパティ情報

whenが指定されなかった場合は全て条件に一致したとみなします。

Case
Key Type Description Example Default
path string プロパティの正規表現(完全一致) root<'id'>
when (str) 条件式
"one.name == 'hoge'"
whenについて

Template表記に対応しています。
プロパティは以下を使用できます。

key Type Description
one (any) oneのpathで指定したプロパティに入っている値
other (any) otherのpathで指定したプロパティに入っている値
  • addedの場合はoneがNone
  • removedの場合はotherがNone

whenが指定されなかった場合は全て条件に一致したとみなします。

pathのコーテーションについて

プロパティが文字列の場合コーテーションを付けて下さい。
数字の場合はコーテーションを付けないで下さい。

Examples

path /api1items[].id は値が変更されていても無視する
  judgement:
    - name: ignore
      config:
        ignores:
          - title: API1のitems[].idの値は無視
            conditions:
              - when: 'req.path == "/api1"'
                changed:
                  - path: root<'items'><\d+><'id'>
items[].type が追加されていても、その値がallなら無視する
  judgement:
    - name: ignore
      config:
        ignores:
          - title: items[].type
            conditions:
              - added:
                  - path: root<'items'><\d+><'type'>
                    when: 'other == "all"'
複雑な条件

以下3つのケースを無視した上でステータスを判断する。

  • pathが /api から始まる場合に追加された .id
  • nameに check を含む debug または url は削除されている場合
  • name がignoreまたはunknown に変更された場合
  judgement:
    - name: ignore
      config:
        ignores:
          - title: /apiから始まる場合に追加されたプロパティ.idは無視
            conditions:
              - when: 'req.path|reg("/api.*")'
                added:
                  - path: root<'id'>
          - title: nameにcheckを含む場合は全階層のプロパティdebugとurlが削除されていても無視
            conditions:
              - when: 'req.name|reg(.*check.*)'
                removed:
                  - path: .*<'(debug|url)'>.*
          - title: プロパティ.nameがignoreまたはunknownに変更された場合だけは無視
            conditions:
              - changed:
                  - path: root<'name'>
                    when: 'other in ["ignore", "unknown"]'

same

指定した条件のいずれかに一致する場合、ステータスをSameにします。

Config

Definitions

Root
Key Type Description Example Default
when_any str[] 条件式
'"2" in req.path'
when_anyで指定できるプロパティ

Template表記に対応しています。
プロパティは以下を使用できます。

key Type Description
req Request リクエスト情報
res_one Response oneのレスポンス情報
res_other Response otherのレスポンス情報
dict_one (dict) oneのプロパティ情報
dict_other (dict) otherのプロパティ情報

Examples

リクエストのpathが/test0または/test1のときはSameとする
  judgement:
    - name: same
      config:
        when_any:
          - req.path == '/test0'
          - req.path == '/test1'