Exportcenter:UploadAttachment:v2.2

Материал из Справочная система Россельхознадзора
Перейти к навигации Перейти к поиску

Общие сведения

Операция UploadAttachment предназначена для загрузки файлов в хранилище и получения уникальных идентификаторов (ссылок) на файлы для дальнейшего использования в операциях.


Передача файлов осуществляется с использованием технологий:

Технология Ссылка на спецификацию Описание
MTOM (SOAP Message Transmission Optimization Mechanism) https://www.w3.org/TR/soap12-mtom MTOM - это W3C Механизм оптимизации передачи сообщений, метод эффективной отправки двоичных данных к и от веб-сервисов. Обычно используется с XOP.
XOP (XML-binary Optimized Packaging) https://www.w3.org/TR/xop10 XOP - это W3C Механизм сериализации и десериализации набора элементов XML, содержащих двоичные данные.

Спецификация запроса

# Название XML-элемента Тип Обязат. Описание (нажмите [...] для отображения дополнительного описания)
001 <def:uploadAttachmentRequest>
002 ···<def:apiKey>?</def:apiKey> apl:APIKey [1..1] API Key
003 ···<def:attachment> def:ApplicationAttachment [1..1] Вложение/файл, ассоциированный с заявкой интеграционного шлюза ВетИС.API
004 ······<def:serviceId>exportcenter.service:2.2</def:serviceId> xs:Name [1..1] Идентификатор сервиса
005 ······<def:issuerId>?</def:issuerId> bs:UUID [1..1] Идентификатор заявителя, клиента интеграционного шлюза ВетИС.API
006 ······<def:data> def:AttachmentDataWrapper [1..1] Содержимое загружаемого вложения/файлов с поддержкой пакетной загрузки
007 ·········<def:includedFile> exc:ExcDocumentFile [1..*] Содержимое вложенного документа с возможностью передачи открепленной подписи
008 ············<exc:id>?</exc:id> bs:Identifier [1..1] Идентификатор файла
009 ············<exc:fileName>?</exc:fileName> bs:String255 [1..1] Название файла
010 ············<exc:mimeCode>?</exc:mimeCode> xs:token [1..1] MIME-код файла, представленного в бинарном виде
011 ············<exc:encoding>?</exc:encoding> xs:token [0..1] Кодировка файла, представленного в бинарном виде
012 ············<exc:fileSize>?</exc:fileSize> xs:nonNegativeInteger [0..1] Размер файла в байтах
013 ············<exc:fileDigest algorithmId="?">?</exc:fileDigest> exc:ExcFileDigest [1..1]

Хеш-значение для файла в соответствии с указанным алгоритмом

  • Возможные значения algorithmId:
    • GOST3411-2012.256
    • GOST3411-2012.512
    • SHA-1
    • SHA-256
014 ············<exc:binaryData xmime:contentType="?">?</exc:binaryData> exc:ExcDocumentBinaryData [1..1] Содержимое файла в формате base64
015 ············<exc:signature>?</exc:signature> exc:ExcDocumentBinaryData [0..*] Открепленная подпись файла
016 ·········</def:includedFile>
017 ······</def:data>
018 ···</def:attachment>
019 </def:uploadAttachmentRequest>

Спецификация ответа

# Название XML-элемента Тип Обязат. Описание (нажмите [...] для отображения дополнительного описания)
001 <def:uploadAttachmentResponse>
002 ···<def:attachment> def:ApplicationAttachment [1..1] Вложение/файл, ассоциированный с заявкой интеграционного шлюза ВетИС.API
003 ······<def:attachmentId>?</def:attachmentId> bs:UUID [1..1] Идентификатор загружаемого вложения
004 ······<def:uploadStatus>?</def:uploadStatus> def:AttachmentUploadStatus [1..1]

Результат загрузки вложения/файла

  • UPLOADED - Загружено
  • PARTIALLY_UPLOADED - Частично загружено
  • REJECTED - Отказано (не загружено)
005 ······<def:uploadDate>?</def:uploadDate> xs:dateTime [1..1] Дата и время загрузки
006 ······<def:result> def:AttachmentDataWrapper [0..1]

Результат успешной или частично успешной загрузки вложения/файлов

  • Обязательно при статусах UPLOADED и PARTIALLY_UPLOADED
007 ·········<def:includedFile> exc:ExcDocumentFile [1..*] Содержимое вложенного документа
008 ············<exc:id>?</exc:id> bs:Identifier [1..1] Идентификатор файла
009 ············<exc:fileName>?</exc:fileName> bs:String255 [1..1] Название файла
010 ············<exc:mimeCode>?</exc:mimeCode> xs:token [1..1] MIME-код файла, представленного в бинарном виде
011 ············<exc:fileSize>?</exc:fileSize> xs:nonNegativeInteger [1..1] Размер файла в байтах
012 ············<exc:referenceId>?</exc:referenceId> exc:ExcDocumentFileReference [1..1] Ссылка или идентификатор файла в хранилище
013 ·········</def:includedFile>
014 ······</def:result>
015 ······<def:errors> app:BusinessErrorList [0..1]

Ошибки при загрузке вложения/файлов

  • Обязательно при статусах PARTIALLY_UPLOADED и REJECTED
016 ·········<app:error code="?" qualifier="?">?</app:error> app:BusinessError [1..*] Код и описание ошибки
017 ······</def:errors>
018 ···</def:attachment>
019 </def:uploadAttachmentResponse>

Примеры запросов

RQ1. Пример запроса загрузки файлов.


RQ1.Request.Example

<def:uploadAttachmentRequest 
        xmlns:def="http://api.vetrf.ru/schema/cdm/exportcenter/attachment/ws-definitions/v1"
        xmlns:exc="http://api.vetrf.ru/schema/cdm/exportcenter/applications/v2"
        xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
        xmlns:app="http://api.vetrf.ru/schema/cdm/application">
    <def:apiKey>TEST_API_KEY==</def:apiKey>
    <def:attachment>
        <def:serviceId>exportcenter.service:2.2</def:serviceId>
        <def:issuerId>9f267cfc-fea3-4238-ba41-5777b5995137</def:issuerId>
        <def:data>
            <def:includedFile>
                <exc:id>1</exc:id>
                <exc:fileName>Имя_файла.pdf</exc:fileName>
                <exc:mimeCode>application/pdf</exc:mimeCode>
                <exc:fileSize>2007693</exc:fileSize>
                <exc:fileDigest algorithmId="SHA-256">DSJHGSDFTYWUYGSHGF567221GFD76R21GVC76SG2487SDHG</exc:fileDigest>
                <exc:binaryData xmime:contentType="application/pdf"> <!-- Передача файла c MTOM и XOP -->
                    <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:1531990080907"/>
                </exc:binaryData>
                <exc:signature>KJHKLJKJHDFDSKJHKDFh7634jhkdfjKjhkf8767845jdKJNkfuy8746==</exc:signature> <!-- Пример передачи подписи без MTOM -->
                <exc:signature> <!-- Пример передачи подписи c MTOM и XOP -->
                    <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:288267554280"/>
                </exc:signature>
            </def:includedFile>
            <def:includedFile>
                <exc:id>2</exc:id>
                <exc:fileName>Акт_отбора_868934_20230403.pdf</exc:fileName>
                <exc:mimeCode>application/pdf</exc:mimeCode>
                <exc:fileSize>200</exc:fileSize>
                <exc:fileDigest algorithmId="SHA-256">DSJHGSDFTYWUYGSHGF567221GFD76R21GVC76SG2487SDHG</exc:fileDigest>
                <exc:binaryData xmime:contentType="application/pdf">
                    <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:8945876458764"/>
                </exc:binaryData>
                <exc:signature>KJHKLJKJHDFDSKJHKDFh7634jhkdfjKjhkf8767845jdKJNkfuy8746==</exc:signature> <!-- Пример передачи подписи без MTOM -->
            </def:includedFile>
        </def:data>
    </def:attachment>
</def:uploadAttachmentRequest>


RS1. Пример ответа с успешной загрузкой файлов из запроса RQ1.


RS1.Response.Example

<def:uploadAttachmentResponse 
        xmlns:def="http://api.vetrf.ru/schema/cdm/exportcenter/attachment/ws-definitions/v1"
        xmlns:exc="http://api.vetrf.ru/schema/cdm/exportcenter/applications/v2"
        xmlns:app="http://api.vetrf.ru/schema/cdm/application">
    <def:attachment>
        <def:attachmentId>15f4acf8-6d6f-479a-b14c-606a508e7101</def:attachmentId>
        <def:uploadStatus>UPLOADED</def:uploadStatus>
        <def:uploadDate>2009-05-16T16:42:28</def:uploadDate>
        <def:result>
            <def:includedFile>
                <exc:id>1</exc:id>
                <exc:fileName>Имя_файла.pdf</exc:fileName>
                <exc:mimeCode>application/pdf</exc:mimeCode>
                <exc:fileSize>2007693</exc:fileSize>
                <exc:referenceId>ru:vetrf:api:storage:exportcenter.service:e3948581-443f-445c-b71e-6d35d58fda91</exc:referenceId>
            </def:includedFile>
            <def:includedFile>
                <exc:id>2</exc:id>
                <exc:fileName>Акт_отбора_868934_20230403.pdf</exc:fileName>
                <exc:mimeCode>application/pdf</exc:mimeCode>
                <exc:fileSize>200</exc:fileSize>
                <exc:referenceId>ru:vetrf:api:storage:exportcenter.service:e3948581-443f-445c-b71e-6d35d58fda91</exc:referenceId>
            </def:includedFile>
        </def:result>
    </def:attachment>
</def:uploadAttachmentResponse>


RS2. Пример ответа с частично успешной загрузкой файлов из запроса RQ1.


RS2.Response.Example

<def:uploadAttachmentResponse 
        xmlns:def="http://api.vetrf.ru/schema/cdm/exportcenter/attachment/ws-definitions/v1"
        xmlns:exc="http://api.vetrf.ru/schema/cdm/exportcenter/applications/v2"
        xmlns:app="http://api.vetrf.ru/schema/cdm/application">
    <def:attachment>
        <def:attachmentId>15f4acf8-6d6f-479a-b14c-606a508e7101</def:attachmentId>
        <def:uploadStatus>PARTIALLY_UPLOADED</def:uploadStatus>
        <def:uploadDate>2009-05-16T16:42:28</def:uploadDate>
        <def:result>
            <def:includedFile>
                <exc:id>1</exc:id>
                <exc:fileName>Имя_файла.pdf</exc:fileName>
                <exc:mimeCode>application/pdf</exc:mimeCode>
                <exc:fileSize>2007693</exc:fileSize>
                <exc:referenceId>ru:vetrf:api:storage:exportcenter.service:e3948581-443f-445c-b71e-6d35d58fda91</exc:referenceId>
            </def:includedFile>
        </def:result>
        <def:errors>
            <app:error code="AMNT00024" qualifier="2">Открепленная подпись файла не прошла проверку.</app:error>
            <app:error code="AMNT00021" qualifier="2">Хэш-сумма файла не соответствует загруженному содержимому.</app:error>
        </def:errors>
        </def:result>
    </def:attachment>
</def:uploadAttachmentResponse>


RS3. Пример ответа с отказом загрузки файлов из запроса RQ1.


RS3.Response.Example

<def:uploadAttachmentResponse 
        xmlns:def="http://api.vetrf.ru/schema/cdm/exportcenter/attachment/ws-definitions/v1"
        xmlns:exc="http://api.vetrf.ru/schema/cdm/exportcenter/applications/v2"
        xmlns:app="http://api.vetrf.ru/schema/cdm/application">
    <def:attachment>
        <def:attachmentId>15f4acf8-6d6f-479a-b14c-606a508e7101</def:attachmentId>
        <def:uploadStatus>REJECTED</def:uploadStatus>
        <def:uploadDate>2009-05-16T16:42:28</def:uploadDate>
        <def:errors>
            <app:error code="AMNT00024" qualifier="1">Открепленная подпись файла не прошла проверку.</app:error>
            <app:error code="AMNT00021" qualifier="2">Хэш-сумма файла не соответствует загруженному содержимому.</app:error>
        </def:errors>
        </def:result>
    </def:attachment>
</def:uploadAttachmentResponse>