AS PNET Core 3.x - Добавление данных ко всем ответам API - PullRequest
1 голос
/ 30 мая 2020

Я гуглил последние 3 часа и не нашел ничего полезного. Я пытаюсь преобразовать все свои запросы в определенный стандарт c RESTful.

Прямо сейчас каждый контроллер возвращает данные в следующем формате:

[
    {
        "id": 3,
        "title": "Test",
        "content": "Content Test",
        "userId": 1,
        "user": null,
        "categoryId": null,
        "category": null,
        "comments": null,
        "tags": null,
        "createdOn": null,
        "updatedOn": null
    }
]

Я хочу чтобы обернуть все эти ответы в контейнер, который также состоит из метаданных, как показано ниже:

{
    "statusCode": 200,
    "statusMessage": "success",
    "meta":
    {
        "count": 1,
        "total": 1,
        "pagination":
        {
            "page": 1,
            "pages": 1,
            "limit": 20
        },
        "filters": [],
        "sorters": []
    },
    "data":
    {
        [
            {
                "id": 3,
                "title": "Test",
                "content": "Content Test",
                "userId": 1,
                "user": null,
                "categoryId": null,
                "category": null,
                "comments": null,
                "tags": null,
                "createdOn": null,
                "updatedOn": null
            }
        ]
    }
}

Является ли правильный подход просто создать класс с именем ResponseContainer и заставить все контроллеры возвращать его? Потому что я считаю, что это жизнеспособное решение.

1 Ответ

0 голосов
/ 30 мая 2020

В одном из своих проектов я использовал общий класс c в качестве ответа, например MyApiResponse<T>. Этот класс содержит свойства для метаданных, такие как HttpStatusCode ответа, сообщения об ошибках и т. Д. c. Они устанавливаются для каждого ответа.

Внутри этого класса у меня есть List<T> с именем Data.

Каждый метод API возвращает MyApiResponse<T>, где T - это конкретный класс данных. Например, это может быть MyApiResponse<Weather>, где Data будет хранить List<Weather.

Я обязательно использую этот подход и для моего следующего проекта API.

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