Объект ответа на дизайн API для Error Case - PullRequest
0 голосов
/ 22 октября 2019

Я создаю REST API, который будет давать структурированный ответ. Вот так

public class ApiResponse
{
     //Success or Failure (this can be enum also) 
    public string Status;

    //Some message if any
    public string Message;

    //this is like Envelope of actual response (employee info , account Status etc.)
    public RenponseData Data;
}

И в случае ошибки / исключения я планирую вернуть что-то вроде этого

public class ApiError
{
    // Error Code
    public int Code;

    public string Description; 
}

Таким образом, есть два разных объекта ответа для 2 разных случаев.

Мой вопрос: Является ли хорошей практикой возвращать разные объекты структуры в зависимости от успеха или неудачи запроса, или API должен возвращать один и тот же структурированный объектв каждом случае .

Так что для второго случая мой ответ Объект может выглядеть следующим образом:

public class ApiResponse
{
     //Success or Failure (this can be enum also) 
    public string Status;

    //Some message if any
    public string Message;

    //this is like Envelope of actual response (employee info , account Status etc.)
    public RenponseData Data;

    public ErrorInfo ErrorData;
}

public class ErrorInfo
{
    // Error Code
    public int Code;

    public string Description; 
}

Пожалуйста, предложите. Заранее спасибо !!!

1 Ответ

1 голос
/ 22 октября 2019

Рекомендуется ли возвращать различные объекты структуры в зависимости от успеха или неудачи запроса

Да, все в порядке. Случай возврата представления ресурса или представления состояния действия и представления объяснения ошибки .

общего назначенияКомпоненты могут различать случаи, изучая метаданные ответа.

Существуют также такие идеи, как application / problem + json , если вам нужны «машиночитаемые детали ошибок»

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