我从我的应用程序中调用了第三方服务,它们返回的响应通常采用-"Fail - Error: T4 - Invalid"
的形式。因此,流程为UI -> my controller -> there web service
。我想拦截来自my controller
的响应(流程中的步骤2),因此我可以将T4
错误代码映射到其他内容中。
我在下面运行它,但这是实现它的肮脏方式。因此,我想知道一种更好的方法。
首先调用控制器-
public class ControllerA : BaseController
{
public ControllerA(BusinessLogic businessLogic)
{
_businessLogic = businessLogic;
}
[HttpPost]
[Route("order")]
public IActionResult Order([FromBody] Data data)
{
var response = (_businessLogic.OrderReport(Data, data.type));
//The response looks like this - "Fail - Error: T4 - Invalid"
if (!response.Status)
{
//Logic to parse the error code from response
response.Message = MapErr("T1");
return BadRequest(response);
}
return Ok(response);
}
基本控制器-
private readonly Dictionary<string, string> err = new Dictionary<string, string>() {
{"T1", "1st error"},
{"T2", "2nd error"}
};
public string MapErr(string externalErr)
{
return err[externalErr];
}