繁体   English   中英

IHttpActionResult返回标准

[英]IHttpActionResult return standards

我有一个简单的Web API,该API从XML文件读取数据并将其作为JSON对象返回。

如果找到并正确读取了XML文件,则返回Ok(jsonObject) ,这在我看来很好。 但是 ,如果发生异常,我应该随异常消息一起返回什么?

public IHttpActionResult Get(string timestamp)
{

    try
    {
        //Read XML
        XDocument xDoc = XDocument.Load(@"D:\myfile.xml");

        //Convert XML data into JSON string
        string jsonStr = JsonConvert.SerializeXNode(xDoc);
        JObject json = JObject.Parse(jsonStr);

        return Ok(json);
    }
    catch (Exception ex)
    {
        return Ok(ex.Message.ToString()); 
        //return NotFound(); //I CANNOT RETURN EXCEPTION MESSAGE WITH NotFound()
    }

}

更新:以上是示例代码,但是在我的实际代码中,有多个XML文件可以读取。 除了读取操作之外,还有一些XML操作,因此我真的很想知道异常的原因。

这取决于例外情况以及您希望在响应中提供多少信息。 如果是无法找到XML文件的情况,我会说返回NotFound()结果而没有任何类型的消息就足够了。 这将返回404-Not Found HTTP响应,指示未找到请求的资源。

如果可能会弹出其他异常,则500响应可能就足够了。 这将允许您返回异常消息和堆栈跟踪,但是请记住,在非开发环境中运行时,通常会省略响应内容(出于充分的理由)。 您不想向API使用者提供太多有关服务器内部运行情况的信息。

总的来说,我想读一下HTTP状态代码,并确定最适合您要处理的方案的状态代码。 https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM