2 回答

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個贊
所需的 JSON 錯誤響應(yīng)模型與使用的類不匹配。
當(dāng)前的對象模型承擔(dān)多種職責(zé)。
考慮重構(gòu)類模型以服務(wù)于單一職責(zé)
public class ResponseData {
public List<AccountDTO> AccountList { set; get; }
public string ReturnMessage { set; get; }
}
還可以重構(gòu) API 操作以根據(jù)操作流返回適當(dāng)?shù)捻憫?yīng)。
[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貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超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;
這應(yīng)該會給你你想要的結(jié)果。響應(yīng)對象也必須重構(gòu)。
- 2 回答
- 0 關(guān)注
- 187 瀏覽
添加回答
舉報