Определение типа сообщения MIME
Я новичок в протоколе OneM2M. В поисках документов OneM2M TS0001 у меня нет представления об определении типа MIME уведомления.
Как определить тип MIME (например, "application / json", "application/xml") уведомления?
Я не смог найти ничего в атрибутах подписки.
Это пример руководства разработчика приложения с сайта ниже. Как они решили отправить это уведомление как тип "application/xml"?
Опубликовать уведомление для ADN-AE1 HTTP-запроса с полезной нагрузкой XML
POST / HTTP/1.1
Host: 192.168.0.10:9090
X-M2M-Origin: /mn-cse
X-M2M-RI: notif-12345
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8"?>
<m2m:sgn xmlns:m2m="http://www.onem2m.org/xml/protocols" rn="cin-394798749">
<nev>
<rep>
<m2m:cin>
<ty>4</ty>
<ri>cin-394798749</ri>
<pi>cnt-790965889</pi>
<ct>20150925T050534</ct>
<lt>20150925T050534</lt>
<et>20151107T154802</et>
<st>0</st>
<cnf>text/plain:0</cnf>
<cs>3</cs>
<con>ON</con>
</m2m:cin>
</rep>
</nev>
<sur>/mn-cse/sub-856593979</sur>
</m2m:sgn>
http://www.onem2m.org/application-developer-guide/implementation/notifications
1 ответ
Вы должны взглянуть на TS-0004 "Спецификация протокола ядра сервисного уровня", раздел 6.7 "Типы носителей MIME, специфичные для oneM2M". Там вы можете найти все типы MIME, относящиеся к oneM2M.
Согласно этой таблице, правильным типом MIME для уведомления и кодировки XML является application / vnd.onem2m-ntfy + xml.
Тем не менее, вы также можете проверить TS-0009 "Привязка протокола HTTP", разделы 6.4.2 "Принять" и 6.4.3 "Тип содержимого". Здесь в спецификации сказано, например, для Content-Type:
Любой HTTP-запрос или ответ, содержащий тело сообщения, должен включать в себя заголовок Content-type, установленный в один из "application/xml", "application/json" или oneM2M, определенные типы мультимедиа, определенные в п. 6.7 oneM2M TS-0004.
Поскольку можно однозначно определить тип ресурса, посмотрев на элемент * m2m: sgn ", обычно достаточно установить *application/xml" в качестве Content-Type для кодированных ресурсов XML.
Вы можете скачать последние версии спецификаций oneM2M по адресу http://www.onem2m.org/technical/published-drafts
Обновить
CSE определяет тип кодировки (xml, json или cbor) для сообщения уведомления, просматривая необязательный параметр ty атрибута tificationURI.
Это указано в TS-0001, раздел 9.6.8 "Тип подписки на ресурсы". Подписчик уведомления может добавить параметр типа (например, ty=xml
) к уведомлению. Если это опущено, то CSE выбирает кодировку по умолчанию.