ASP.NET Core 2.0拦截响应

时间:2018-09-24 21:51:05

标签: c# asp.net-core

我从我的应用程序中调用了第三方服务,它们返回的响应通常采用-"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];
    }

0 个答案:

没有答案