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 关注
- 236 浏览
添加回答
举报
