2017-07-14 7 views
0

AWS APIゲートウェイでgetメソッド(idがquery param)を持つAPIをビルドして、ラムダ関数を呼び出すと、dynamodbからデータが取得されます。バックエンドdbコールで結果が返されない場合のHttpエラーコード

dynamodbに渡されたIDが存在しない場合、dynamodbは空のjsonを返します。 jsonの長さを調べて、結果セットが空であることを確認できます。 IDが見つからないというメッセージを返すことができます。

Get、lambda関数、およびdynamodb GetItemはすべて成功しました。データが返されないだけです。

Getメソッドのレスポンスコードは、入力が正しくないことを示す200またはその他の4xxコードですか?

答えて

1

特に、人々が時々http://example.com/find/someIDのようなURLパスクエリを使用するようにAPIを設計するとき、解釈の余地があります。この場合、someIDは見つからなかったサーバ上のリソースと見なすことができ、404を返すことは意味があります。あなたの場合、あなたのURLがhttp://example.com/find?query=someIDのように見えるとすれば、404は不適切だと思います。合法的に正しいリソースが見つからなかったリソース(/find)と結果を持たないクエリとを区別することは困難です。リクエストが実際にはエラーではなかったので、この場合は200を返すことが私にとって意味があります。

あなたのAPIがどのように消費されているかわからないと、特定のことを言うのは難しいですが、エラーとゼロの結果を区別するとユーザーにとってより簡単になると思われます。例えば、Googleのようなものを使って、見つけられなかったものを探した場合に404​​を得ているとします。

最も重要なことは、それをうまく文書化して一貫性を保つことです。

+0

これは非常にうまくいきます。 http://example.com/find?query=someIDの例は、私のURLの見た目です。 404を返すグーグルサーチはポイントを家に帰します。ありがとうございました。 – user9445

関連する問題