我有一个简单的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操作,因此我真的很想知道异常的原因。
答案 0 :(得分:0)
这取决于例外情况以及您希望在响应中提供多少信息。如果是无法找到XML文件的情况,我会说返回NotFound()结果而没有任何类型的消息就足够了。这将返回404-Not Found HTTP响应,指示未找到所请求的资源。
如果可能还会弹出其他一些异常,则500响应可能就足够了。这将允许您返回异常消息和堆栈跟踪,但是请记住,在非开发环境中运行时,通常会省略响应内容(出于充分的理由)。您不想向API使用者提供太多有关服务器内部运行情况的信息。
总的来说,我想读一下HTTP状态代码,并确定最适合您要处理的方案的状态代码。 https://en.wikipedia.org/wiki/List_of_HTTP_status_codes