Exportcenter:UploadAttachment:v2.2: различия между версиями
Перейти к навигации
Перейти к поиску
(не показано 6 промежуточных версий этого же участника) | |||
Строка 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, содержащих двоичные данные. | |||
|- | |||
|} | |||
== Спецификация запроса == | == Спецификация запроса == | ||
Строка 88: | Строка 102: | ||
|exc:ExcFileDigest | |exc:ExcFileDigest | ||
|[1..1] | |[1..1] | ||
| style="width:52em;" | |<div class="mw-collapsible mw-collapsed" data-expandtext=" ... " 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 | |014 | ||
Строка 233: | Строка 255: | ||
|015 | |015 | ||
|style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:errors>'''}} | |style="font-weight: ; font-family: Courier;" |······{{color|#190dbf|'''<def:errors>'''}} | ||
| | |app:BusinessErrorList | ||
|[0..1] | |[0..1] | ||
|<div class="mw-collapsible mw-collapsed" data-expandtext=" ... " data-collapsetext="свернуть" style="font-weight: bold; width:52em;"> | |<div class="mw-collapsible mw-collapsed" data-expandtext=" ... " data-collapsetext="свернуть" style="font-weight: bold; width:52em;"> | ||
<span style="white-space:nowrap; font-weight: normal;">Ошибки при загрузке вложения/файлов</span> | <span style="white-space:nowrap; font-weight: normal;">Ошибки при загрузке вложения/файлов</span> | ||
<div class="mw-collapsible-content" style="font-weight: normal;"> | <div class="mw-collapsible-content" style="font-weight: normal;"> | ||
* Обязательно при | * Обязательно при статусах PARTIALLY_UPLOADED и REJECTED</div> | ||
</div> | </div> | ||
|- | |- | ||
|016 | |016 | ||
|style="font-weight: ; font-family: Courier;" |·········{{color|#190dbf|'''<app:error code={{color|#007f15|"?"}} {{color|Red|qualifier=}}{{color|#007f15|"?"}}>'''}}{{color|#131313|?}}{{color|#190dbf|'''</app:error>'''}} | |style="font-weight: ; font-family: Courier;" |·········{{color|#190dbf|'''<app:error code={{color|#007f15|"?"}} {{color|Red|qualifier=}}{{color|#007f15|"?"}}>'''}}{{color|#131313|?}}{{color|#190dbf|'''</app:error>'''}} | ||
| | |app:BusinessError | ||
|[1..*] | |[1..*] | ||
| style="width:52em;"| Код и описание ошибки | | style="width:52em;"| Код и описание ошибки | ||
Строка 361: | Строка 383: | ||
<div id="example6"> | <div id="example6"> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:100%"> | ||
''' | '''RS2.Response.Example''' | ||
<div class = "mw-collapsible-content"> | <div class = "mw-collapsible-content"> | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
Строка 370: | Строка 392: | ||
<def:attachment> | <def:attachment> | ||
<def:attachmentId>15f4acf8-6d6f-479a-b14c-606a508e7101</def:attachmentId> | <def:attachmentId>15f4acf8-6d6f-479a-b14c-606a508e7101</def:attachmentId> | ||
<def:uploadStatus> | <def:uploadStatus>PARTIALLY_UPLOADED</def:uploadStatus> | ||
<def:uploadDate>2009-05-16T16:42:28</def:uploadDate> | <def:uploadDate>2009-05-16T16:42:28</def:uploadDate> | ||
<def:result> | <def:result> | ||
Строка 383: | Строка 405: | ||
<def:errors> | <def:errors> | ||
<app:error code="AMNT00024" qualifier="2">Открепленная подпись файла не прошла проверку.</app:error> | <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> | <app:error code="AMNT00021" qualifier="2">Хэш-сумма файла не соответствует загруженному содержимому.</app:error> | ||
</def:errors> | </def:errors> |
Текущая версия на 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] | Хеш-значение для файла в соответствии с указанным алгоритмом
|
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] | Результат загрузки вложения/файла
|
005 | ······<def:uploadDate>?</def:uploadDate> | xs:dateTime | [1..1] | Дата и время загрузки |
006 | ······<def:result> | def:AttachmentDataWrapper | [0..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: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] | Ошибки при загрузке вложения/файлов
|
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>