OneNote API (REST) ​​- теги ‹div›, похоже, удаляются во время PATCH

Примечание. Использование того же запроса PATCH, определенного в Onenote API (REST) ​​- добавление PATCH - должно включать ошибку" команд ", если команды уже указаны (?!)

Каждый запрос PATCH является операцией добавления и использует следующий макет, предоставленный | HTML | в моем коде:

<div>
  <h1>Hardcoded_Name_ForNow</h1>
  <h3>4.345054</h3>
  <p>sdfsdfsdf</p>
  <img src="name:image-part-name" alt="New binary image" />
</div>

Однако, когда я ПОЛУЧАЮ содержимое страницы (ref: https://jsapi.apiary.io/apis/onenote/reference/get-pages/v10pagesid/get.html?console=1) получается так:

(HEADER OMITTED)
<body data-absolute-enabled="true" style="font-family:Calibri;font-size:11pt">
  <div style="width:624px">
    <h1 style="font-size:16pt;color:#1e4e79;margin-top:11pt;margin-bottom:11pt">Hardcoded_Name_ForNow</h1>
    <h3 style="font-size:12pt;color:#5b9bd5;margin-top:11pt;margin-bottom:11pt">47.77527</h3>
    <p>TEST</p>
    <img alt="New binary image" width="624" height="353" src="https://www.onenote.com/api/v1.0/resources/0-60a8d03c70a04372ad60cabb8191f86d!1-6C3CB48828A4FCE7!185/$value" data-src-type="image/png" data-fullres-src="https://www.onenote.com/api/v1.0/resources/0-60a8d03c70a04372ad60cabb8191f86d!1-6C3CB48828A4FCE7!185/$value" data-fullres-src-type="image/png" />
    <h1 style="font-size:16pt;color:#1e4e79;margin-top:11pt;margin-bottom:11pt">Hardcoded_Name_ForNow</h1>
    <h3 style="font-size:12pt;color:#5b9bd5;margin-top:11pt;margin-bottom:11pt">41.16911</h3>
    <p>ewqeqweqweqew</p>
    <img alt="New binary image" width="624" height="353" src="https://www.onenote.com/api/v1.0/resources/0-9d9ab7935d16464eb826e70dd7fdb3ef!1-6C3CB48828A4FCE7!185/$value" data-src-type="image/png" data-fullres-src="https://www.onenote.com/api/v1.0/resources/0-9d9ab7935d16464eb826e70dd7fdb3ef!1-6C3CB48828A4FCE7!185/$value" data-fullres-src-type="image/png" />

    ...

  </div>
</body>

Я знаю, что если я не предоставил конкретный целевой идентификатор, запрос PATCH будет нацелен на самый верхний. Однако я ожидал, что запрос PATCH бросит макет оптом без удаления инкапсулятора.

В настоящее время работаем над этим, предполагая, что h1, h3, p, img всегда будут в порядке, но это труднее поддерживать, если порядок тегов изменяется или добавляются новые теги.

Включение атрибутов div id не помогает, их просто нет.


person Larry Larry    schedule 30.06.2015    source источник
comment
Я пробовал много комбинаций добавления внешних div, и они все еще удаляются.   -  person Larry Larry    schedule 02.07.2015


Ответы (1)


На самом деле у нас нет способа хранить произвольные контейнеры в OneNote, поэтому мы как бы делаем все возможное, чтобы повторно синтезировать их по запросу. Если у них нет каких-либо значимых отличительных данных, отдельные из них могут растаять, как вы видите. Наша цель - получать презентационный контент на поверхности и извлекать из него, а не быть хранилищем HTML с высокой точностью.

Таким образом, если вы добавляете атрибут data-id = "UniqueFoo" к вашему, мы рассматриваем его как семантически значимый, поэтому мы делаем дополнительную работу для воспроизведения этой семантики. HTML может быть не в точности таким же, но мы должны создать семантический эквивалент в том, что касается сдерживания, что, вероятно, в этом простом случае будет означать, что ваш код будет сохранен, как и следовало ожидать.

Вы можете использовать guid или что-то вроде атрибута data-id для легкого уникального значения, если в вашем приложении нет ничего уникального, что представляют эти div.

person GarethJ    schedule 14.07.2015
comment
Спасибо, я посмотрю, работает ли добавление идентификатора в инкапсулирующие теги div. Если они этого не сделают, у меня есть план резервного копирования, который включает в себя размещение идентификатора внутри первого h1, и мне придется жестко запрограммировать стиль CSS, чтобы все это не перекрывало заголовок страницы. - person Larry Larry; 16.07.2015
comment
Это должен быть идентификатор данных, а не идентификатор - person GarethJ; 16.07.2015