空の検索で説明的なメッセージが表示されない

フロントエンドでは空の検索は許可されず、検索語が短すぎることを説明する役立つメッセージが表示されます。

しかし、API エンドポイントでは空の検索が許可されており、応答は NULL 値を持つ JSON オブジェクトでステータスコードは 200 です。

API は説明的なエラーメッセージと 400 ステータスで応答すべきではありませんか?

期待される動作:

// 400 error
{
  "errors": [ "You supplied invalid parameters to the request: q" ],
  "error_type": "invalid_parameters"
}

実際の動作:

// 200 ok
{
  "grouped_search_result": null
}

この部分の API は確かに改善の余地がありますが、クエリルートでは多くの引数を受け付けています:

ここでは、min_search_term_length を必須条件として扱うか、オプションとして扱うかを非常に慎重に検討する必要があります。

@sam ありがとうございます。

現状は以下の通りです:

  • 空の検索は API 上のデッドスポットとなっています
  • 検索エンドポイントは検索語句を受け入れますが、メタデータ引数(ユーザー、カテゴリ、タグなど)も受け入れます
  • メタデータ引数は API においてドキュメント化されていません
  • フロントエンドは検索を正しく検証しますが、バックエンド API は部分的にしか検証せず、空の検索を通過させています
  • いかなる場合でも応答メッセージは説明的であるべきです

この概要が役立つことを願っています。
個人的にはこれはバグだと思います。これが意図された動作であるとは驚きです。
どうもありがとうございました :v: