REST API design - дополнительная информация о предметах в коллекции - PullRequest
0 голосов
/ 08 июня 2018

У меня есть одна коллекция в конечной точке / серверах, которая возвращает информацию обо всех серверах:

{
    uid: "5t7yu8i9io0op",
    service_name: "Service Test",
    dc: "dc1",
    sync: true
}

это простая конечная точка, для которой требуется только ударить дБ из бэкэнда.Но на серверах есть много дополнительной информации о них, например, состояние здоровья (больше работы для бэкенда).Поэтому, если я хочу проверить работоспособность одного сервера, я нажимаю конечную точку / серверы /: uid / health и получаю:

{
    overall_status: "HEALTH_OK",
    warnings: [],
    errors: []
}

Но теперь моя проблема в том, что я хотел бы получить проверки работоспособности от всехсерверы, так как должен выглядеть такой API?Должно ли это быть / Servers / Health, / Healthchecks?Или, может быть, он должен быть встроен в первичную коллекцию, например: / servers? Health = true?

1 Ответ

0 голосов
/ 08 июня 2018

Предположение : Запрос на обслуживание может иметь представление об именах серверов, или идентификаторах, или именах хостов.Ради краткости, назовем это serverId;

Затем вы можете создать свой API-интерфейс как

Предлагаемое решение вашего вопроса

/servers/health/{serverId}

вместо serverId передать текст типа 'ALL'и вы знаете, как будет реагировать API.

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

Дополнительный вариант использования

Эта конечная точка приводит к возможному варианту использования еще одного сценария, Что если в подмножестве требуется проверка работоспособностиидентифицированных серверов?

Используйте текст 'SUBSET' в запросе конечной точки для {serverId} и передайте подмножество serverID в теле запроса.

Needlessскажем, ожидаемый подход к получению работоспособности будет включать в себя создание различных потоков для извлечения работоспособности каждого сервера и консолидацию результатов в одном ответе.

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