Azure API アプリにデプロイする Visual Studio 2015 の「Azure API アプリ プレビュー」テンプレートを使用する ASP.net Web API があります。
私のアプリケーションでは、モデル属性の検証と、この記事で説明されているアクション フィルターを使用して、着信ModelState.isValidするすべての http 要求を呼び出し、http 400 応答でエラーを含むモデルの状態を返します。
これはすべてローカルで完全に機能し、実際に Azure Web サイトに展開すると完全に機能しますが、同じコードを Azure API APP に展開すると、要求が新しい応答で再ラップされているように見えます (以下を参照してください。ステータスが追加されているようです)。 json へのソース フィールド) と、リクエストから削除されたモデル状態エラーの結果。
API アプリにこれらを再ラップされた応答に含めるように強制する方法はありますか、それとも実際にこれはバグですか? 根本的なエラーのない 400 応答は、API ユーザーにとってあまり役に立ちません。MSDN フォーラムで、同じ問題を抱えている他の人を見たことがあります。
ローカルでの結果 & Azure Web サイトでの結果
HTTP/1.1 400 Bad Request
{
"Message":"The request is invalid.",
"Errors":
{
"InitialAmount":["The value 'a' is not valid for InitialAmount.",
"The InitialAmount field is required."]
}
}
結果 Azure API アプリ
HTTP/1.1 400 Bad Request
{
"status": 400,
"source": "https://MYAPIAPP.azurewebsites.net/api/Test?InitialAmount=a",
"message": "The request is invalid."
}