2 回答

TA貢獻1966條經驗 獲得超4個贊
所需的 JSON 錯誤響應模型與使用的類不匹配。
當前的對象模型承擔多種職責。
考慮重構類模型以服務于單一職責
public class ResponseData {
public List<AccountDTO> AccountList { set; get; }
public string ReturnMessage { set; get; }
}
還可以重構 API 操作以根據操作流返回適當的響應。
[HttpGet]
public IHttpActionResult getAllAccounts(string BRN, string CompanyName) {
try {
ResponseData response = new ResponseData();
List<AccountDTO> accountlist = null;
IAccountInterface usecase = new AccountDAO();
if (BRN != null && CompanyName != null) {
accountlist = usecase.getAccountbyBRNCompanyName().Where(p => p.BRN.ToLower().Equals(BRN.ToLower()) && p.CompanyName.ToLower().Contains(CompanyName.ToLower())).ToList();
response.ReturnMessage = "Data filter by BRN and CompanyName.";
} else {
response.ReturnMessage = "Data filter cannot be null.";
}
response.AccountList = accountlist;
return Ok(response);
}
catch (Exception e) {
Console.WriteLine("Error: " + e.Message + ", Stack: " + e.StackTrace);
var response = new {
error = new {
code = "sample code",
message = e.Message,
innererror = new {
message = e.Message,
type = e.GetType().Name,
stacktrace = e.StackTrace
}
}
}
var responseMessage = Request.CreateResponse(HttpStatusCode.InternalServerError, response);
return ResponseMessage(responseMessage);
}
}

TA貢獻1799條經驗 獲得超9個贊
Console.WriteLine("Error: " + e.Message + ", Stack: " + e.StackTrace);
response.error.code = "sample code";
response.error.message = e.Message;
response.error.innererror = "{";
response.error.message = e.Message;
response.error.type = "ExceptionType + ...";
response.error.stacktrace = e.StackTrace;
這應該會給你你想要的結果。響應對象也必須重構。
- 2 回答
- 0 關注
- 186 瀏覽
添加回答
舉報