私はプロジェクトに取り組んでおり、アカウントの詳細の更新、新しい詳細の追加、ASP.NET Web ApiとBackbone.jsで行われたすべての変更など、すべてのクライアント側の操作をWebAPIに大きく依存しています。
現在のシーン:
現在のスキームでは、操作が成功したかどうかを示すために、WebAPIコントローラーからブール値を返しています。
例 :
[ActionName("UpdateAccountDetails")]
public bool PostAccountDetails(SomeModel model)
{
bool updateStatus = _customService.UpdateAccountDetails(model);
return updateStatus;
}
そのため、このアクションに対してajax呼び出しを行った後、応答にtrue / falseがないかチェックし、エラーまたは成功メッセージを表示します。
問題 :
ここで何が起こったのかというと、アクションで例外が発生し始め、アクションがfalseを返し続け、エラーメッセージが表示されました。しかし、私は理由を見つけることができませんでしたか?
だから私は誰もが従う標準的なAPI応答構造があるかどうか疑問に思いましたか?
私は当初、このクラスを返すために各WebAPIアクションを使用するというこのアイデアを思いつきました。
public class OperationStatus
{
public bool Result { get; set; } // true/false
public string Status { get; set; } // success/failure/warning
public List<string> WarningMessages { get; set; }
public List<string> ErrorMessages { get; set; }
public string OtherDetails { get; set; }
}
この変更は大きな変更であり、時間とリソースを消費するので、これについて2番目/3番目/4番目の意見を持っている方が良いと思いました。
これについて考えてみてください。
アップデート :
[ActionName("UpdateAccountDetails")]
public HttpResponseMessage PostAccountDetails(SomeModel model)
{
bool updateStatus;
string errorMessage;
try{
updateStatus = _customService.UpdateAccountDetails(model);
if(updateStatus)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
catch(Exception exception)
{
errorMessage = exception.Message;
return Request.CreateResponse(HttpStatusCode.InternalServerError, errorMessage);
}
return updateStatus;
}
これについて何か考えはありますか?