Запрос на обновление eventNotificationCriteria ресурса <subscription> - PullRequest
1 голос
/ 07 февраля 2020

Если есть запрос на обновление ресурса для изменения некоторых условий (например, createBefore , createAfter et c.) eventNotificationCriteria *1006*. атрибут ( ru c), тогда будут ли заменены все существующие условия атрибута eventNotificationCriteria или были изменены только условия, присутствующие в запросе?

Например

  1. Ресурс создается с атрибутом en c следующим образом:

    "enc": {
        "crb": "20191130T142810",
        "cra": "20191129T140000",
        "net": [
            1,
            2,
            3,
            4,
            5
        ]
    }
    
  2. Обновите атрибут ru c:

    "enc": {
        "ms": "20191129T140000",
        "us": "20191130T142810",
        "net": [
            1,
            2,
            3,
            4,
            5
        ]
    }
    

Возможные ответы на ОБНОВЛЕНИЕ ru c в ресурсе :

ОТВЕТ 1:

"enc": {
    "crb": "20191130T142810",
    "cra": "20191129T140000",
    "ms": "20191129T140000",
    "us": "20191130T142810"
    "net": [
        1,
        2,
        3,
        4,
        5
    ]
}

ОТВЕТ 2:

"enc": {
    "ms": "20191129T140000",
    "us": "20191130T142810",
    "net": [
        1,
        2,
        3,
        4,
        5
    ]
}

Что правильно, ОТВЕТ 1 или ОТВЕТ 2?

1 Ответ

1 голос
/ 10 февраля 2020

TL; DR
Если применить приведенные ниже спецификации к вашему примеру, Ответ 2 будет правильным. Обновление атрибута eventNotificationCriteria ресурса заменит существующее значение обновленным значением.

TS; WM
Иногда непросто определить, что происходит во время обновления. Если не указано иное, применяется общая процедура, указанная в TS-0001 - Функциональная архитектура, раздел 8.1.2: Запрос применяется:

Обновление (U): содержимое существующего Кому адресуемый ресурс заменяется новым контентом, как в параметре Content. Если некоторые атрибуты в параметре Content не существуют на целевом ресурсе, такие атрибуты создаются с назначенными значениями. Если для некоторых атрибутов параметра Content задано значение NULL, такие атрибуты удаляются из адресуемого ресурса.

И для зависящих от операции параметров:

Update (U): Контент - это контент, который необходимо заменить в существующем ресурсе. Для атрибутов, которые должны обновляться в ресурсе, Content включает имена таких атрибутов с их новыми значениями. Для атрибутов, которые должны быть созданы в ресурсе, Content включает имена таких атрибутов с соответствующими значениями. Для атрибутов, которые должны быть удалены в ресурсе, Content включает в себя имена таких атрибутов с их значением, равным NULL.

Но вы также должны всегда смотреть на TS-0004 - Сервис Протокол ядра уровня . Например, в разделе 7.4.8.2: спецификация ресурса c и очень подробные процедуры для операций CRUD вы найдете подробности для операций CRUD на ресурсах.

Обновление

Я думаю, что дальнейшее обсуждение оправдано, чтобы подчеркнуть, что причина # 1 неверна, потому что en c является сложным атрибутом. Поскольку все эти значения являются частью одного атрибута, применяется упомянутое правило. Если выполняется аналогичная операция обновления с простыми атрибутами, тогда «объединение» атрибутов является правильным, аналогично ответу № 1.

...