概要

リクエストキーにsample[0-999]を含めることで、APIにカスタムルールを追加し、APIのレスポンスをカスタマイズすることができます。例えば、「テレビが欲しい」という入力に対して「method:shopping、param_query:テレビ」のように独自の応答ドメインや応答パラメータを含んだレスポンスを返却させることができるようになります。

仕様に登場する用語

用語 説明
入力テキスト APIに入力として与えるテキスト。例 : 今日の天気
応答ドメイン 入力テキストの意図に相当する情報。APIの出力でいうmethod
入力テキストパターン APIのレスポンスをカスタマイズしたい入力テキストのパターン。正規表現に近い記法が可能。詳細は後述
ルール APIへのリクエストに与える、応答ドメインと入力テキストパターンのペア

仕様

共通

sample0, sample1, ..., sample999までの、最大1000個のルールを追加可能。
  • 「sample0=<応答ドメイン>,<入力テキストパターン> 」のようにリクエストに含めると、<入力テキストパターン>に該当する入力テキストのAPIの応答ドメインを<応答ドメイン>に変更できる
  • sample0, sample2, sample3のように順番がとんだ場合、とんだ数字以降のルールは無視される(この例だとsample2とsample3)
  • 0未満、1000以上の数字のルールは無視される
  • 数字が小さいルールが優先される
  • 応答ドメインと入力テキストパターンは合計で1024byte未満でなければいけない
例えば、「sample0=hello,こんにちは」は「こんにちは」などにマッチし「method,hello」(と共通で返されるいくつかのパラメータ)を返す。

応答ドメイン

<応答ドメイン>には英数字のみを利用できる。

入力テキストパターン

入力テキストパターンには、正規表現に似た記法を使用できる。
記法 説明 備考
^ 文字列の先頭にマッチする 「^京都」は「京都」にはマッチするが「東京都」にはマッチしない  
$ 文字列の末尾にマッチする 「東京$」は「東京」にはマッチするが「東京都」にはマッチしない  
. 任意の1文字にマッチする 「こんにち.」は「こんにちは」や「こんにちわ」などにマッチする  
? 直前の表現に作用し、直前の表現を0回か1回繰り返した表現にマッチする 「青ヶ?島」は「青島」もしくは「青ヶ島」にマッチする ? の直前は、. か通常の文字か { }のみ受け付けます
* 直前の表現に作用し、直前の表現を0回以上繰り返した表現にマッチする 「すも*」は「す」や「すも」「すもももももも」などにマッチする *の直前は、.か通常の文字のみ受け付けます
+ 直前の表現に作用し、直前の表現を1回以上繰り返した表現にマッチする 「すも+」は「すも」や「すもも」「すもももももも」などにマッチする +の直前は、.か通常の文字のみ受け付けます。
(?<name>value) 入力テキスト中のvalueを、param_<name>=valueという形で応答に含める。※nameは小文字で記載してください。 「(?<place>大阪)」 は 「param_place=大阪」を出力する 正規表現の(...)と異なる部分があるため、キャプチャ用途のみに用いてください。
{value1|value2|...|valueN} value1, value2, ..., valueNのいずれかにマッチする 「{東京|京都}」は「東京」や「京都」にマッチする 正規表現の{}と異なる部分がいくつかあります。
  • {}の中には、. * などのメタ文字を入れられない
  • {}を再帰的に書けない
  • {value1|value2|}は動かない。代わりに{value1|value2}?とする
上記の記法は組み合わせて使える。例えば、
  • 「(?<place>.+)の地図」は、「紀尾井町の地図」や「大阪の地図」などにマッチし、それぞれparam_place=紀尾井町、param_place=大阪 を返す
  • 「(?<place>{大阪|京都})の地図」は、「大阪の地図」や「京都の地図」などにマッチし、それぞれparam_place=大阪、param_place=京都 を返す