Exportcenter:UploadAttachment:v2.2: различия между версиями

Материал из Справочная система Россельхознадзора
Перейти к навигации Перейти к поиску
 
(не показано 16 промежуточных версий этого же участника)
Строка 2: Строка 2:


Операция '''UploadAttachment''' предназначена для загрузки файлов в хранилище и получения уникальных идентификаторов (ссылок) на файлы для дальнейшего использования в операциях.
Операция '''UploadAttachment''' предназначена для загрузки файлов в хранилище и получения уникальных идентификаторов (ссылок) на файлы для дальнейшего использования в операциях.
<br />
'''Передача файлов осуществляется с использованием технологий:'''
{| class="wikitable"
|-
! Технология !! Ссылка на спецификацию !! Описание
|-
| 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, содержащих двоичные данные.
|-
|}


== Спецификация запроса ==
== Спецификация запроса ==
{| class="wikitable"
! #
! Название XML-элемента
! Тип
! Обязат.
! Описание (нажмите [...] для отображения дополнительного описания)
|-
|001
|style="font-weight: ; font-family: Courier;" |{{color|#190dbf|'''<def:uploadAttachmentRequest>'''}}
|
|
| style="width:52em;"|
|-
|002
|style="font-weight: ; font-family: Courier;" |···{{color|#190dbf|'''<def:apiKey>'''}}{{color|#131313|?}}{{color|#190dbf|'''</def:apiKey>'''}}
|apl:APIKey
|[1..1]
| style="width:52em;"| API Key
|-
|003
|style="font-weight: ; font-family: Courier;" |···{{color|#190dbf|'''<def:attachment>'''}}
|def:ApplicationAttachment
|[1..1]
| style="width:52em;"| Вложение/файл, ассоциированный с заявкой интеграционного шлюза ВетИС.API
|-
|004
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:serviceId>'''}}{{color|#131313|exportcenter.service:2.2}}{{color|#190dbf|'''</def:serviceId>'''}}
|xs:Name
|[1..1]
| style="width:52em;"| Идентификатор сервиса
|-
|005
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:issuerId>'''}}{{color|#131313|?}}{{color|#190dbf|'''</def:issuerId>'''}}
|bs:UUID
|[1..1]
| style="width:52em;"| Идентификатор заявителя, клиента интеграционного шлюза ВетИС.API
|-
|006
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:data>'''}}
|def:AttachmentDataWrapper
|[1..1]
| style="width:52em;"| Содержимое загружаемого вложения/файлов с поддержкой пакетной загрузки
|-
|007
|style="font-weight: ; font-family: Courier;" |·········{{color|#190dbf|'''<def:includedFile>'''}}
|exc:ExcDocumentFile
|[1..*]
| style="width:52em;"| Содержимое вложенного документа с возможностью передачи открепленной подписи
|-
|008
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:id>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:id>'''}}
|bs:Identifier
|[1..1]
| style="width:52em;"| Идентификатор файла
|-
|009
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:fileName>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:fileName>'''}}
|bs:String255
|[1..1]
| style="width:52em;"| Название файла
|-
|010
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:mimeCode>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:mimeCode>'''}}
|xs:token
|[1..1]
| style="width:52em;"| MIME-код файла, представленного в бинарном виде
|-
|011
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:encoding>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:encoding>'''}}
|xs:token
|[0..1]
| style="width:52em;"| Кодировка файла, представленного в бинарном виде
|-
|012
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:fileSize>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:fileSize>'''}}
|xs:nonNegativeInteger
|[0..1]
| style="width:52em;"| Размер файла в байтах
|-
|013
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:fileDigest algorithmId&#61;{{color|#007f15|"?"}}>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:fileDigest>'''}}
|exc:ExcFileDigest
|[1..1]
|<div class="mw-collapsible mw-collapsed" data-expandtext="&nbsp;...&nbsp;" data-collapsetext="свернуть" style="font-weight: bold; width:52em;">
<span style="white-space:nowrap; font-weight: normal;">Хеш-значение для файла в соответствии с указанным алгоритмом</span>
<div class="mw-collapsible-content" style="font-weight: normal;">
* Возможные значения algorithmId:
** GOST3411-2012.256
** GOST3411-2012.512
** SHA-1
** SHA-256</div>
</div>
|-
|014
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:binaryData xmime:contentType&#61;{{color|#007f15|"?"}}>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:binaryData>'''}}
|exc:ExcDocumentBinaryData
|[1..1]
| style="width:52em;"| Содержимое файла в формате base64
|-
|015
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:signature>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:signature>'''}}
|exc:ExcDocumentBinaryData
|[0..*]
| style="width:52em;"| Открепленная подпись файла
|-
|016
|style="font-weight: ; font-family: Courier;" |·········{{color|#190dbf|'''</def:includedFile>'''}}
|
|
| style="width:52em;"|
|-
|017
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''</def:data>'''}}
|
|
| style="width:52em;"|
|-
|018
|style="font-weight: ; font-family: Courier;" |···{{color|#190dbf|'''</def:attachment>'''}}
|
|
| style="width:52em;"|
|-
|019
|style="font-weight: ; font-family: Courier;" |{{color|#190dbf|'''</def:uploadAttachmentRequest>'''}}
|
|
| style="width:52em;"|
|-
|}


== Спецификация ответа ==
== Спецификация ответа ==
{| class="wikitable"
! #
! Название XML-элемента
! Тип
! Обязат.
! Описание (нажмите [...] для отображения дополнительного описания)
|-
|001
|style="font-weight: ; font-family: Courier;" |{{color|#190dbf|'''<def:uploadAttachmentResponse>'''}}
|
|
| style="width:52em;"|
|-
|002
|style="font-weight: ; font-family: Courier;" |···{{color|#190dbf|'''<def:attachment>'''}}
|def:ApplicationAttachment
|[1..1]
| style="width:52em;"| Вложение/файл, ассоциированный с заявкой интеграционного шлюза ВетИС.API
|-
|003
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:attachmentId>'''}}{{color|#131313|?}}{{color|#190dbf|'''</def:attachmentId>'''}}
|bs:UUID
|[1..1]
| style="width:52em;"| Идентификатор загружаемого вложения
|-
|004
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:uploadStatus>'''}}{{color|#131313|?}}{{color|#190dbf|'''</def:uploadStatus>'''}}
|def:AttachmentUploadStatus
|[1..1]
|<div class="mw-collapsible mw-collapsed" data-expandtext="&nbsp;...&nbsp;" data-collapsetext="свернуть" style="font-weight: bold; width:52em;">
<span style="white-space:nowrap; font-weight: normal;">Результат загрузки вложения/файла</span>
<div class="mw-collapsible-content" style="font-weight: normal;">
* UPLOADED - Загружено
* PARTIALLY_UPLOADED - Частично загружено
* REJECTED - Отказано (не загружено)</div>
</div>
|-
|005
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:uploadDate>'''}}{{color|#131313|?}}{{color|#190dbf|'''</def:uploadDate>'''}}
|xs:dateTime
|[1..1]
| style="width:52em;"| Дата и время загрузки
|-
|006
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:result>'''}}
|def:AttachmentDataWrapper
|[0..1]
|<div class="mw-collapsible mw-collapsed" data-expandtext="&nbsp;...&nbsp;" data-collapsetext="свернуть" style="font-weight: bold; width:52em;">
<span style="white-space:nowrap; font-weight: normal;">Результат успешной или частично успешной загрузки вложения/файлов</span>
<div class="mw-collapsible-content" style="font-weight: normal;">
* Обязательно при статусах UPLOADED и PARTIALLY_UPLOADED</div>
</div>
|-
|007
|style="font-weight: ; font-family: Courier;" |·········{{color|#190dbf|'''<def:includedFile>'''}}
|exc:ExcDocumentFile
|[1..*]
| style="width:52em;"| Содержимое вложенного документа
|-
|008
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:id>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:id>'''}}
|bs:Identifier
|[1..1]
| style="width:52em;"| Идентификатор файла
|-
|009
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:fileName>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:fileName>'''}}
|bs:String255
|[1..1]
| style="width:52em;"| Название файла
|-
|010
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:mimeCode>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:mimeCode>'''}}
|xs:token
|[1..1]
| style="width:52em;"| MIME-код файла, представленного в бинарном виде
|-
|011
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:fileSize>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:fileSize>'''}}
|xs:nonNegativeInteger
|[1..1]
| style="width:52em;"| Размер файла в байтах
|-
|012
|style="font-weight: ; font-family: Courier;" |············{{color|#190dbf|'''<exc:referenceId>'''}}{{color|#131313|?}}{{color|#190dbf|'''</exc:referenceId>'''}}
|exc:ExcDocumentFileReference
|[1..1]
| style="width:52em;"| Ссылка или идентификатор файла в хранилище
|-
|013
|style="font-weight: ; font-family: Courier;" |·········{{color|#190dbf|'''</def:includedFile>'''}}
|
|
| style="width:52em;"|
|-
|014
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''</def:result>'''}}
|
|
| style="width:52em;"|
|-
|015
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:errors>'''}}
|app:BusinessErrorList
|[0..1]
|<div class="mw-collapsible mw-collapsed" data-expandtext="&nbsp;...&nbsp;" data-collapsetext="свернуть" style="font-weight: bold; width:52em;">
<span style="white-space:nowrap; font-weight: normal;">Ошибки при загрузке вложения/файлов</span>
<div class="mw-collapsible-content" style="font-weight: normal;">
* Обязательно при статусах PARTIALLY_UPLOADED и REJECTED</div>
</div>
|-
|016
|style="font-weight: ; font-family: Courier;" |·········{{color|#190dbf|'''<app:error code&#61;{{color|#007f15|"?"}} {{color|Red|qualifier&#61;}}{{color|#007f15|"?"}}>'''}}{{color|#131313|?}}{{color|#190dbf|'''</app:error>'''}}
|app:BusinessError
|[1..*]
| style="width:52em;"| Код и описание ошибки
|-
|017
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''</def:errors>'''}}
|
|
| style="width:52em;"|
|-
|018
|style="font-weight: ; font-family: Courier;" |···{{color|#190dbf|'''</def:attachment>'''}}
|
|
| style="width:52em;"|
|-
|019
|style="font-weight: ; font-family: Courier;" |{{color|#190dbf|'''</def:uploadAttachmentResponse>'''}}
|
|
| style="width:52em;"|
|-
|}


== Примеры запросов ==
== Примеры запросов ==
=== RQ1. Пример запроса загрузки файлов. ===
<br />
<div id="example6">
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
'''RQ1.Request.Example'''
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
<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>
</syntaxhighlight>
</div>
</div>
<br />
=== RS1. Пример ответа с успешной загрузкой файлов из запроса RQ1. ===
<br />
<div id="example6">
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
'''RS1.Response.Example'''
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
<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>
</syntaxhighlight>
</div>
</div>
<br />
=== RS2. Пример ответа с частично успешной загрузкой файлов из запроса RQ1. ===
<br />
<div id="example6">
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
'''RS2.Response.Example'''
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
<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>
</syntaxhighlight>
</div>
</div>
<br />
=== RS3. Пример ответа с отказом загрузки файлов из запроса RQ1. ===
<br />
<div id="example6">
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
'''RS3.Response.Example'''
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
<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>
</syntaxhighlight>
</div>
</div>
<br />

Текущая версия на 19:45, 10 апреля 2023

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

Операция 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>