IHttpActionResult вернуть стандарты - PullRequest
0 голосов
/ 18 октября 2018

У меня есть простой веб-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, поэтому мне бы очень хотелось узнать причину исключения.

1 Ответ

0 голосов
/ 18 октября 2018

Это зависит от исключения и количества информации, которую вы хотите предоставить в своих ответах.Если это так, что файл XML не может быть найден, я бы сказал, что достаточно вернуть результат NotFound () без какого-либо сообщения.Это возвращает HTTP-ответ 404 - Not Found, который указывает, что запрошенный ресурс не был найден.

Если есть некоторые другие исключения, которые могут появиться, то ответа 500, вероятно, будет достаточно.Это позволит вам возвращать сообщение об исключении и трассировку стека, но имейте в виду, что содержимое ответа обычно будет опущено (по уважительной причине) при работе в среде без разработки.Вы не хотите предоставлять потребителям вашего API слишком много информации о внутренней работе вашего сервера.

В целом, я бы сказал, прочитайте коды состояния HTTP и решите, какие из них лучше всего подходят для ваших сценариев.Пытаешься справиться.https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...