heyallan
(Allan Moreno)
1
フロントエンドでは空の検索は許可されず、検索語が短すぎることを説明する役立つメッセージが表示されます。
しかし、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
}
sam
(Sam Saffron)
2
この部分の API は確かに改善の余地がありますが、クエリルートでは多くの引数を受け付けています:
ここでは、min_search_term_length を必須条件として扱うか、オプションとして扱うかを非常に慎重に検討する必要があります。
heyallan
(Allan Moreno)
3
@sam ありがとうございます。
現状は以下の通りです:
- 空の検索は API 上のデッドスポットとなっています
- 検索エンドポイントは検索語句を受け入れますが、メタデータ引数(ユーザー、カテゴリ、タグなど)も受け入れます
- メタデータ引数は API においてドキュメント化されていません
- フロントエンドは検索を正しく検証しますが、バックエンド API は部分的にしか検証せず、空の検索を通過させています
- いかなる場合でも応答メッセージは説明的であるべきです
この概要が役立つことを願っています。
個人的にはこれはバグだと思います。これが意図された動作であるとは驚きです。
どうもありがとうございました 