通过API中的WSO2 EI 6.1.1进行附件处理 [英] Attachment Handling through WSO2 EI 6.1.1 in API

查看:121
本文介绍了通过API中的WSO2 EI 6.1.1进行附件处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

用例:

  • 将定义一个REST API,以处理称为附件(邮递员REST客户端)的客户端发送的文件.
  • 作为附件发送的文件将发送到

    当我将日志级别设置为满"时,在api中,进入日志下方.

    当我通过

    API代码:

     <?xml version ="1.0"encoding ="UTF-8"?< api context ="/uploadAttachment"名称="AtatchmentAPI";xmlns ="http://ws.apache.org/ns/synapse"><资源方法="POST">< inSequence><属性名称="messageType"scope ="axis2"type ="STRING"值=多部分/表单数据"/<!-< log level =已满"/>->< log level =自定义"><属性名称="======== UploadAttachment"值="调用的API ==========<属性名称="======== AttachmentName ==="expression ="get-property('transport','filename')"/></log>< property expression =" get-property('registry','gov:/ZohoConfig/ZohoAppConfigFile.txt')"name ="accessToken"scope =默认"type ="STRING"/><!-< log level =已满"/>->< payloadFactory media-type ="xml">< format>< ns:binary xmlns:ns ="http://ws.apache.org/commons/ns/payload"> $ 1</ns:binary></format>< args>< arg evaluator ="xml"expression ="//* [local-name()='binary']/text()"/></args></payloadFactory>< script language ="js"><![CDATA [var binaryNode =mc.getEnvelope().getBody().getFirstElement().getFirstOMChild();binaryNode.setBinary(true);]]></script><属性名称="attachment_base64"expression ="$ body"/>< log level =自定义"><属性名称="==== attachment_base64 ===="expression ="$ body"</property></log>< payloadFactory description =表单响应有效负载"media-type ="json"< format> {'uploaddoc':$ 1}</format>< args>< arg evaluator ="xml"表达式="$ ctx:attachment_base64"/></args></payloadFactory>< log level =自定义"><属性名称="==== uploaddoc_Payload ===="expression ="$ body"</property></log><!-< log level ="full"/>-><属性名称="transport.vfs.ReplyFileName"value ="ZohoTestFile.txt";scope ="transport"/><属性名称="transport.vfs.Streaming"值=真"scope ="transport"/><属性名称="ClientApiNonBlocking";action =删除"scope ="axis2"/><属性名称="messageType"scope ="axis2"值=应用程序/二进制"/<属性名称="HTTP_METHOD";value ="POST";scope ="axis2"type ="STRING"/>< header expression ="fn:concat('Bearer','1000.CCCCCCCCCCCC.XXXXXXXXXXXXXXXXXX')'"name =授权"scope ="transport"/>< call><端点>< address uri =" https://projectsapi.zoho.com/restapi/portal/36249112/projects/685798000000976352/tasks/685798000011774999/attachments/"</endpoint></call>< log>< property expression =" json-eval($.)"name ="== API响应======"/</log><!-< payloadFactory description =表单响应有效载荷"media-type ="json"< format> {收件人":"Regularrrrrrrrrrrrrrr"}</format< args/></payloadFactory>< log>< property expression =" json-eval($.)"名称="==最终-CampaignBuilder_JsonRequest_ForCreation ======"//</log>->< respond/><!-< property expression =" String(//mediate/file/@ filename)"name =文件名"scope =默认"type ="STRING"/>->< respond/></inSequence>< outSequence/>< faultSequence/></resource></api> 

    API响应:

      {错误":{代码":6831,"message":输入参数丢失";}} 

    原因:需要将附件传递到名为"uploaddoc"的参数,调用Zoho API时.在这里,我不知道如何为该字段设置附件

    连线日志:

      3:04:42,565] []信息-已从文件D:\ ServerSetup 6.1.1 \ wso2ei-6.1.1 \ wso2 \ tmp \ carbonapps \ -1234部署名为'AtatchmentAPI'的APIDeployer API\ 1602833682469Att-CAR_1.0.0.car \ AtatchmentAPI_1.0.0 \ AtatchmentAPI-1.0.0.xml3:04:42,565] []信息-ApplicationManager成功部署了Carbon应用程序:AttachmentUpload-CAR_1.0.0 {super-tenant}3:05:04,362] []调试-有线HTTP侦听器I/O调度程序2>>"POST/uploadAttachment HTTP/1.1 [\ r] [\ n]"3:05:04,363] []调试-有线HTTP侦听器I/O调度程序2>>用户代理:PostmanRuntime/7.26.5 [\ r] [\ n]"3:05:04,363] []调试-有线HTTP侦听器I/O调度程序2>>接受:*/* [\ r] [\ n]"3:05:04,363] []调试-有线HTTP侦听器I/O调度程序2>>邮递员令牌:21c46ad2-19fc-46a6-aea8-8113ac70817e [\ r] [\ n]"3:05:04,363] []调试-有线HTTP侦听器I/O调度程序2>>"主机:localhost:8280 [\ r] [\ n]"3:05:04,363] []调试-有线HTTP侦听器I/O调度程序2>>接受编码:gzip,deflate,br [\ r] [\ n]"3:05:04,364] []调试-有线HTTP侦听器I/O调度程序2>>连接:keep-alive [\ r] [\ n]"3:05:04,364] []调试-有线HTTP侦听器I/O调度程序2>>内容类型:多部分/表单数据;boundary = -------------------------- 623932778277436708655778 [\ r] [\ n]"3:05:04,364] []调试-有线HTTP侦听器I/O调度程序2>>"Cookie:bf42f62d55 = 64dc75f94d2bd72d94493d263847c08c [\ r] [\ n]"3:05:04,364] []调试-有线HTTP侦听器I/O调度程序2>>内容长度:376 [\ r] [\ n]"3:05:04,365] []调试-有线HTTP侦听器I/O调度程序2>>" [\ r] [\ n]"3:05:04,365] []调试-有线HTTP侦听器I/O调度程序2>>" ---------------------------- 623932778277436708655778 [\ r] [\ n]"3:05:04,365] []调试-有线HTTP侦听器I/O调度程序2>>内容处置:表单数据;name ="uploaddoc";filename ="ZohoAttachment.txt" [[\ r] [\ n]";3:05:04,365] []调试-有线HTTP侦听器I/O调度程序2>>内容类型:文本/纯文本[\ r] [\ n]"3:05:04,366] []调试-有线HTTP侦听器I/O调度程序2>>" [\ r] [\ n]"3:05:04,370] []调试-有线HTTP侦听器I/O调度程序2>>[\ r] [\ n]"3:05:04,371] []调试-有线HTTP侦听器I/O调度程序2>>这是zoho附件任务[\ r] [\ n]"3:05:04,371] []调试-有线HTTP侦听器I/O调度程序2>>" ---------------------------- 623932778277436708655778 [\ r] [\ n]"3:05:04,371] []调试-有线HTTP侦听器I/O调度程序2>>内容处置:表单数据;name =名称" [\ r] [\ n]3:05:04,373] []调试-有线HTTP侦听器I/O调度程序2>>" [\ r] [\ n]"3:05:04,373] []调试-有线HTTP侦听器I/O调度程序2>>"TaskAttachment Demo [\ r] [\ n]"3:05:04,373] []调试-有线HTTP侦听器I/O调度程序2>>" ---------------------------- 623932778277436708655778-[\ r] [\ n]"3:05:04,373] []信息-LogMediator ======== UploadAttachment =调用的API ==========,========= AttachmentName ==== null3:05:04,398] []信息-LogMediator ==== attachment_base64 ==== =< soapenv:Body xmlns:soapenv ="http://www.w3.org/2003/05/soap-envelope">< ns:binary xmlns:ns =" http://ws.apans/ns/payload"> LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3NzQzNjcwODY1NTc3OA0KQ29udGVudC1EaXNwbNYbYYBYY1YY1Y1Y1YY1Y1lbnQudHh0Ig0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluDQoNCkhpLA0KVGhpcyBpcyB6b2hvIEF0dGFjaG1lbnQgdGFzaw0KLS0tLS0tz3LczLtz0Tc1Ltz0Tc0Ltz0Tc0Ltz0Tc0Ltz0Ltz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tc0tz0Tc0Tz0Tz0Tc0tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0Tz0T0zEaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJuYW1lIg0KDQpUYXNrQXR0YWNobWVudCBEZW1vDQotLS0tLS0tLS0tLS0tLS0tLS0t20N1C1N1C1N1C1N1C1N1C1N1C1N1C1N1C1N1C1N1C1N1C1N1C1N1C1N1C0dy>3:05:04,402] []信息-LogMediator ==== uploaddoc_Payload ==== =< soapenv:Body xmlns:soapenv =" http://www.w3.org/2003/05/soap-envelope">< uploaddoc xmlns =" http://ws.apachese> LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3NzQzNjcwODY1NTc3OA0KQ29udGVudC1EaXNwb3NpdGlvbjgZm9yBPS1YYY1Y1Y1Y1Y2Yg0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluDQoNCkhpLA0KVGhpcyBpcyB6b2hvIEF0dGFjaG1lbnQgdGFzaw0KLS0tLS0tLS0tLS0tLS0tL0K1YC3MzCZYK3YK3YK3YZ1C3Y1C3Y1C0Y1C3Y1C0Y1C0Y1C3C3YlvbjogZm9ybS1kYXRhOyBuYW1lPSJuYW1lIg0KDQpUYXNrQXR0YWNobWVudCBEZW1vDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tN0jNzzzOTMy1Nc4N3:05:05,124] []调试-有线HTTPS-Sender I/O调度程序4<<" POST/restapi/portal/36249008/projects/685798000009576352/tasks/685798000011774013/attachments/HTTP/1.1 [3:05:05,126] []调试-有线HTTPS-Sender I/O调度程序4<<授权:承载1000.9df1f22e7d16ba95f0553af9855d40b5.f81f2af95682c8b398d0bb4939190d10 [\ r] [\ n]"3:05:05,127] []调试-有线HTTPS-Sender I/O调度程序4<<"Cookie:bf42f62d55 = 64dc75f94d2bd72d94493d263847c08c [\ r] [\ n]"3:05:05,127] []调试-有线HTTPS-Sender I/O调度程序4<<"transport.vfs.Streaming:true [\ r] [\ n]"3:05:05,127] []调试-有线HTTPS-Sender I/O调度程序4<<接受:*/* [\ r] [\ n]"3:05:05,128] []调试-有线HTTPS-Sender I/O调度程序4<<邮递员令牌:21c46ad2-19fc-46a6-aea8-8113ac70817e [\ r] [\ n]"3:05:05,128] []调试-有线HTTPS-Sender I/O调度程序4<<接受编码:gzip,deflate,br [\ r] [\ n]"3:05:05,128] []调试-有线HTTPS-Sender I/O调度程序4<<"transport.vfs.ReplyFileName:ZohoTestFile.txt [\ r] [\ n]"3:05:05,129] []调试-有线HTTPS-Sender I/O调度程序4<<内容类型:应用程序/二进制[\ r] [\ n]"3:05:05,129] []调试-有线HTTPS-Sender I/O调度程序4<<"Transfer-Encoding:chunked [\ r] [\ n]"3:05:05,129] []调试-有线HTTPS-Sender I/O调度程序4<<"主持人:projectsapi.zoho.com [\ r] [\ n]"3:05:05,130] []调试-有线HTTPS-Sender I/O调度程序4<<连接:保持活动[\ r] [\ n]"3:05:05,130] []调试-有线HTTPS-Sender I/O调度程序4<<用户代理:Synapse-PT-HttpComponents-NIO [\ r] [\ n]"3:05:05,130] []调试-有线HTTPS-Sender I/O调度程序4<<" [\ r] [\ n]"3:05:05,131] []调试-有线HTTPS-Sender I/O调度程序4<<"237 [\ r] [\ n]"3:05:05,131] []调试-有线HTTPS-Sender I/O调度程序4<<< updocdoc xmlns =" http://ws.apache.org/ns/synapse> LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3Nz3OA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJ1cGxvYWRkb2MiOyBmaWxlbmFtZT0iWm9ob0F0dGFjaG1lbnQudHh0Ig0B0BBVaG1lbnQgdGFzaw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3NzQzNjcwODY1NTc3OA0KQ29udGVudC1EaXNwbXNYYYYYYYYYYYYYYYYYYYYYYYYYYWS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tNjIzOTMyNzc4Mjc3NDM2NzA4NjU1Nzc4LS0NCg ==</uploaddoc> [\ r] [\ n]"3:05:05,134] []调试-有线HTTPS-Sender I/O调度程序4<<"0 [\ r] [\ n]"3:05:05,135] []调试-有线HTTPS-Sender I/O调度程序4<<" [\ r] [\ n]"3:05:05,905] []调试-有线HTTPS-Sender I/O调度程序4>>"HTTP/1.1 400 [\ r] [\ n]"3:05:05,906] []调试-有线HTTPS-Sender I/O调度程序4>>服务器:ZGS [\ r] [\ n]"3:05:05,906] []调试-有线HTTPS-Sender I/O调度程序4>>日期:2020年10月16日,星期五,格林尼治标准时间[\ r] [\ n]"3:05:05,906] []调试-有线HTTPS-Sender I/O调度程序4>>"内容类型:application/json; charset = utf-8 [\ r] [\ n]"3:05:05,906] []调试-有线HTTPS-Sender I/O调度程序4>>内容长度:60 [\ r] [\ n]"3:05:05,907] []调试-有线HTTPS-Sender I/O调度程序4>>连接:keep-alive [\ r] [\ n]"3:05:05,907] []调试-有线HTTPS-Sender I/O调度程序4>>"X内容类型选项:nosniff [\ r] [\ n]"3:05:05,907] []调试-有线HTTPS-Sender I/O调度程序4>>"X-XSS-Protection:1 [\ r] [\ n]"3:05:05,908] []调试-有线HTTPS-Sender I/O调度程序4>>"Set-Cookie:zpct = 24a027ad-3cd2-4edf-b641-b792d3ffede8; path =/; SameSite = None;安全;优先级=高[\ r] [\ n]"3:05:05,908] []调试-有线HTTPS-Sender I/O调度程序4>>" Set-Cookie:_zcsr_tmp = 24a027ad-3cd2-4edf-b641-b792d3ffede8; path =/; SameSite = Strict; Secure; priority = high [\ r3:05:05,908] []调试-有线HTTPS-Sender I/O调度程序4>>" Pragma:no-cache [\ r] [\ n]"3:05:05,909] []调试-有线HTTPS-Sender I/O调度程序4>>缓存控制:no-cache [\ r] [\ n]"3:05:05,909] []调试-有线HTTPS-Sender I/O调度程序4>>到期时间:1970年1月1日,星期四,格林尼治标准时间[\ r] [\ n]"3:05:05,909] []调试-有线HTTPS-Sender I/O调度程序4>>" Set-Cookie:JSESSIONID = 9FD064E43DACD49060E958A34C2E0325;路径=/;安全[\ r] [\ n]"3:05:05,909] []调试-有线HTTPS-Sender I/O调度程序4>>"X帧选项:SAMEORIGIN [\ r] [\ n]"3:05:05,910] []调试-有线HTTPS-Sender I/O调度程序4>>与X-UA兼容:IE = 9,IE = 10 [\ r] [\ n]"3:05:05,910] []调试-有线HTTPS-Sender I/O调度程序4>>"内容处置:附件;filename = response.txt; [\ r] [\ n]"3:05:05,910] []调试-有线HTTPS-Sender I/O调度程序4>>"X-Download-Options:noopen [\ r] [\ n]"3:05:05,910] []调试-有线HTTPS-Sender I/O调度程序4>>" [\ r] [\ n]"3:05:05,910] []调试-有线HTTPS-Sender I/O调度程序4>>"{{错误":{"代码":6831,消息":输入参数丢失"}} [\ n]3:05:05,921] []信息-LogMediator发送至:http://www.w3.org/2005/08/addressing/anonymous,WSAction:,SOAPAction:,MessageID:urn:uuid:49cdf6b1-0ac6-4728-bc92-f8658b4a88::请求,== API响应======= = {错误":{代码":6831,消息":输入参数缺失"}}3:05:05,925] []调试-有线HTTP侦听器I/O调度程序2<<"HTTP/1.1 400 [\ r] [\ n]"3:05:05,925] []调试-有线HTTP侦听器I/O调度程序2<<"X帧选项:SAMEORIGIN [\ r] [\ n]"3:05:05,925] []调试-有线HTTP侦听器I/O调度程序2<<与X-UA兼容:IE = 9,IE = 10 [\ r] [\ n]"3:05:05,926] []调试-有线HTTP侦听器I/O调度程序2<<缓存控制:no-cache [\ r] [\ n]"3:05:05,927] []调试-有线HTTP侦听器I/O调度程序2<<"X内容类型选项:nosniff [\ r] [\ n]"3:05:05,927] []调试-有线HTTP侦听器I/O调度程序2<<"内容处置:附件;filename = response.txt; [\ r] [\ n]"3:05:05,927] []调试-有线HTTP侦听器I/O调度程序2<<"X-Download-Options:noopen [\ r] [\ n]"3:05:05,927] []调试-有线HTTP侦听器I/O调度程序2<<" Set-Cookie:JSESSIONID = 9FD064E43DACD49060E958A34C2E0325;路径=/;安全[\ r] [\ n]"3:05:05,927] []调试-有线HTTP侦听器I/O调度程序2<<" Set-Cookie:_zcsr_tmp = 24a027ad-3cd2-4edf-b641-b792d3ffede8; path =/; SameSite = Strict; Secure; priority = high [\3:05:05,928] []调试-有线HTTP侦听器I/O调度程序2<<"Set-Cookie:zpct = 24a027ad-3cd2-4edf-b641-b792d3ffede8; path =/; SameSite = None;安全;优先级=高[\ r] [\ n]"3:05:05,928] []调试-有线HTTP侦听器I/O调度程序2<<到期时间:1970年1月1日,星期四,格林尼治标准时间[\ r] [\ n]"3:05:05,929] []调试-有线HTTP侦听器I/O调度程序2<<" Pragma:no-cache [\ r] [\ n]"3:05:05,929] []调试-有线HTTP侦听器I/O调度程序2<<"X-XSS-Protection:1 [\ r] [\ n]"3:05:05,929] []调试-有线HTTP侦听器I/O调度程序2<<"内容类型:application/json; charset = utf-8 [\ r] [\ n]"3:05:05,930] []调试-有线HTTP侦听器I/O调度程序2<<日期:2020年10月16日,星期五,格林尼治标准时间[\ r] [\ n]"3:05:05,930] []调试-有线HTTP侦听器I/O调度程序2<<"Transfer-Encoding:chunked [\ r] [\ n]"3:05:05,930] []调试-有线HTTP侦听器I/O调度程序2<<"连接:关闭[\ r] [\ n]"3:05:05,930] []调试-有线HTTP侦听器I/O调度程序2<<" [\ r] [\ n]"3:05:05,931] []调试-有线HTTP侦听器I/O调度程序2<<"3c [\ r] [\ n]"3:05:05,931] []调试-有线HTTP侦听器I/O调度程序2<<"{{错误":{"代码":6831,消息":输入参数丢失"}} [\ n]3:05:05,931] []调试-有线HTTP侦听器I/O调度程序2<<" [\ r] [\ n]"3:05:05,931] []调试-有线HTTP侦听器I/O调度程序2<<"0 [\ r] [\ n]"3:05:05,932] []调试-有线HTTP侦听器I/O调度程序2<<" [\ r] [\ n]" 

    任何人都可以给我解决方案吗?

    解决方案

    模拟zoho api(使用任何简单的python,pip安装Web服务器)和转储请求来自ESB,并查看请求中缺少的内容.标头很可能会丢失,Content-Disposition Content-Type

    API指出名称";参数是必需的.

    Use Case:

    • A REST API will be defined to handle the files sent by clients called (Postman REST Client) as attachment.
    • The files sent as attachment will be sent to Zoho Task Creation Endpoint in order to create task with Document.

    Note: When i tried with postman directly by calling Zoho task Creation API, It creates task with Document.

    Can anyone please let me know how to achieve this in API of WSO2 EI 6.1.1

    Postman:

    When i put log level="full" inside api,getting below log.

    When i decode it via Online Tool which gives base64 decoded content like below.

    API Code:

    <?xml version="1.0" encoding="UTF-8"?>
    <api context="/uploadAttachment" name="AtatchmentAPI" xmlns="http://ws.apache.org/ns/synapse">
        <resource methods="POST">
            <inSequence>
             <property name="messageType" scope="axis2" type="STRING" value="multipart/form-data"/>
           <!--  <log level="full"/> -->
                <log level="custom">
                    <property name="========UploadAttachment" value=" API Called=========="/>
                    <property name="========AttachmentName===" expression="get-property('transport', 'filename')"/>
                    
                </log>
               <property expression="get-property('registry','gov:/ZohoConfig/ZohoAppConfigFile.txt')" name="accessToken" scope="default" type="STRING"/>
                <!-- <log level="full"/> -->
                <payloadFactory media-type="xml">
                  <format>
                    <ns:binary xmlns:ns="http://ws.apache.org/commons/ns/payload">$1</ns:binary>
                  </format>
                  <args>
                    <arg evaluator="xml" expression="//*[local-name()='binary']/text()"/>
                  </args>
                </payloadFactory>
                 <script language="js">
                <![CDATA[
                   var binaryNode =       
                      mc.getEnvelope().getBody().getFirstElement().getFirstOMChild();  
                   binaryNode.setBinary(true);
                ]]>
                </script>
                <property name="attachment_base64" expression="$body"/>
                <log level="custom">
                <property name="====attachment_base64====" expression="$body"></property>
                </log>
                <payloadFactory description="Form Response Payload" media-type="json">
                   <format>{"uploaddoc":$1}</format>
                   <args>
                   <arg evaluator="xml" expression="$ctx:attachment_base64"/>
                    </args>  
               </payloadFactory>
               <log level="custom">
                <property name="====uploaddoc_Payload====" expression="$body"></property>
                </log>
                <!-- <log level="full"/> -->
                 <property name="transport.vfs.ReplyFileName" value="ZohoTestFile.txt" scope="transport"/>
                 <property name="transport.vfs.Streaming" value="true" scope="transport"/>
                 <property name="ClientApiNonBlocking" action="remove" scope="axis2"/>
                 <property name="messageType" scope="axis2"  value="application/binary"/>
                <property name="HTTP_METHOD" value="POST" scope="axis2" type="STRING"/>
                 <header expression="fn:concat('Bearer ', '1000.CCCCCCCCCC.XXXXXXXXXXXXXXXXXX')" name="Authorization" scope="transport"/>
                 <call>
                 <endpoint>
                 <address uri="https://projectsapi.zoho.com/restapi/portal/36249112/projects/685798000000976352/tasks/685798000011774999/attachments/"/>
                 </endpoint>
                 </call>
                  <log>
                   <property expression="json-eval($.)" name="==API Response======"/>
               </log>
                 <!-- <payloadFactory description="Form Response Payload" media-type="json">
                   <format>{"recipients":"Regularrrrrrrrrrrrr"}</format>
                   <args/>
                      
               </payloadFactory>
               <log>
                   <property expression="json-eval($.)" name="==Final- CampaignBuilder_JsonRequest_ForCreation======"/>
               </log> -->
            <respond/>
                <!-- <property expression="String(//mediate/file/@filename)" name="filename" scope="default" type="STRING"/> -->
                <respond/>
            </inSequence>
            <outSequence/>
            <faultSequence/>
        </resource>
    </api>
    

    API Response:

    {
        "error": {
            "code": 6831,
            "message": "Input Parameter Missing"
        }
    }
    

    Reason: need to pass attachment to the param called "uploaddoc" when calling Zoho API. here i don't know how to set attachment to that field

    Wire Logs:

        3:04:42,565] []  INFO - APIDeployer API named 'AtatchmentAPI' has been deployed from file : D:\ServerSetup 6.1.1\wso2ei-6.1.1\wso2\tmp\carbonapps\-1234\1602833682469Att
    -CAR_1.0.0.car\AtatchmentAPI_1.0.0\AtatchmentAPI-1.0.0.xml
    3:04:42,565] []  INFO - ApplicationManager Successfully Deployed Carbon Application : AttachmentUpload-CAR_1.0.0 {super-tenant}
    3:05:04,362] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "POST /uploadAttachment HTTP/1.1[\r][\n]"
    3:05:04,363] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "User-Agent: PostmanRuntime/7.26.5[\r][\n]"
    3:05:04,363] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Accept: */*[\r][\n]"
    3:05:04,363] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Postman-Token: 21c46ad2-19fc-46a6-aea8-8113ac70817e[\r][\n]"
    3:05:04,363] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Host: localhost:8280[\r][\n]"
    3:05:04,363] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Accept-Encoding: gzip, deflate, br[\r][\n]"
    3:05:04,364] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Connection: keep-alive[\r][\n]"
    3:05:04,364] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Content-Type: multipart/form-data; boundary=--------------------------623932778277436708655778[\r][\n]"
    3:05:04,364] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Cookie: bf42f62d55=64dc75f94d2bd72d94493d263847c08c[\r][\n]"
    3:05:04,364] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Content-Length: 376[\r][\n]"
    3:05:04,365] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "[\r][\n]"
    3:05:04,365] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "----------------------------623932778277436708655778[\r][\n]"
    3:05:04,365] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Content-Disposition: form-data; name="uploaddoc"; filename="ZohoAttachment.txt"[\r][\n]"
    3:05:04,365] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Content-Type: text/plain[\r][\n]"
    3:05:04,366] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "[\r][\n]"
    3:05:04,370] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Hi,[\r][\n]"
    3:05:04,371] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "This is zoho Attachment task[\r][\n]"
    3:05:04,371] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "----------------------------623932778277436708655778[\r][\n]"
    3:05:04,371] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "Content-Disposition: form-data; name="name"[\r][\n]"
    3:05:04,373] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "[\r][\n]"
    3:05:04,373] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "TaskAttachment Demo[\r][\n]"
    3:05:04,373] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 >> "----------------------------623932778277436708655778--[\r][\n]"
    3:05:04,373] []  INFO - LogMediator ========UploadAttachment =  API Called==========, ========AttachmentName=== = null
    3:05:04,398] []  INFO - LogMediator ====attachment_base64==== = <soapenv:Body xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><ns:binary xmlns:ns="http://ws.apa
    ns/ns/payload">LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3NzQzNjcwODY1NTc3OA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJ1cGxvYWRkb2MiOyBmaWxlbmFtZT0iW
    1lbnQudHh0Ig0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluDQoNCkhpLA0KVGhpcyBpcyB6b2hvIEF0dGFjaG1lbnQgdGFzaw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3NzQzNjcwODY1NTc3OA
    EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJuYW1lIg0KDQpUYXNrQXR0YWNobWVudCBEZW1vDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tNjIzOTMyNzc4Mjc3NDM2NzA4NjU1Nzc4LS0NCg==</ns:binary
    dy>
    3:05:04,402] []  INFO - LogMediator ====uploaddoc_Payload==== = <soapenv:Body xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><uploaddoc xmlns="http://ws.apache
    se">LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3NzQzNjcwODY1NTc3OA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJ1cGxvYWRkb2MiOyBmaWxlbmFtZT0iWm9ob0F0dGFj
    g0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluDQoNCkhpLA0KVGhpcyBpcyB6b2hvIEF0dGFjaG1lbnQgdGFzaw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3NzQzNjcwODY1NTc3OA0KQ29udGVud
    lvbjogZm9ybS1kYXRhOyBuYW1lPSJuYW1lIg0KDQpUYXNrQXR0YWNobWVudCBEZW1vDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tNjIzOTMyNzc4Mjc3NDM2NzA4NjU1Nzc4LS0NCg==</uploaddoc></soapenv:
    
    3:05:05,124] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "POST /restapi/portal/36249008/projects/685798000009576352/tasks/685798000011774013/attachments/ HTTP/1.1[
    
    3:05:05,126] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Authorization: Bearer 1000.9df1f22e7d16ba95f0553af9855d40b5.f81f2af95682c8b398d0bb4939190d10[\r][\n]"
    3:05:05,127] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Cookie: bf42f62d55=64dc75f94d2bd72d94493d263847c08c[\r][\n]"
    3:05:05,127] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "transport.vfs.Streaming: true[\r][\n]"
    3:05:05,127] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Accept: */*[\r][\n]"
    3:05:05,128] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Postman-Token: 21c46ad2-19fc-46a6-aea8-8113ac70817e[\r][\n]"
    3:05:05,128] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Accept-Encoding: gzip, deflate, br[\r][\n]"
    3:05:05,128] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "transport.vfs.ReplyFileName: ZohoTestFile.txt[\r][\n]"
    3:05:05,129] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Content-Type: application/binary[\r][\n]"
    3:05:05,129] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Transfer-Encoding: chunked[\r][\n]"
    3:05:05,129] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Host: projectsapi.zoho.com[\r][\n]"
    3:05:05,130] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "Connection: Keep-Alive[\r][\n]"
    3:05:05,130] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n]"
    3:05:05,130] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "[\r][\n]"
    3:05:05,131] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "237[\r][\n]"
    3:05:05,131] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "<uploaddoc xmlns="http://ws.apache.org/ns/synapse">LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3Nz
    3OA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJ1cGxvYWRkb2MiOyBmaWxlbmFtZT0iWm9ob0F0dGFjaG1lbnQudHh0Ig0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluDQoNCkhpLA0KVGhpcyBpcyB
    aG1lbnQgdGFzaw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTYyMzkzMjc3ODI3NzQzNjcwODY1NTc3OA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJuYW1lIg0KDQpUYXNrQXR0YWNobWVu
    S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tNjIzOTMyNzc4Mjc3NDM2NzA4NjU1Nzc4LS0NCg==</uploaddoc>[\r][\n]"
    3:05:05,134] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "0[\r][\n]"
    3:05:05,135] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 << "[\r][\n]"
    3:05:05,905] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "HTTP/1.1 400 [\r][\n]"
    3:05:05,906] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Server: ZGS[\r][\n]"
    3:05:05,906] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Date: Fri, 16 Oct 2020 07:35:06 GMT[\r][\n]"
    3:05:05,906] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Content-Type: application/json;charset=utf-8[\r][\n]"
    3:05:05,906] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Content-Length: 60[\r][\n]"
    3:05:05,907] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Connection: keep-alive[\r][\n]"
    3:05:05,907] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "X-Content-Type-Options: nosniff[\r][\n]"
    3:05:05,907] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "X-XSS-Protection: 1[\r][\n]"
    3:05:05,908] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Set-Cookie: zpct=24a027ad-3cd2-4edf-b641-b792d3ffede8;path=/;SameSite=None;Secure;priority=high[\r][\n]"
    3:05:05,908] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Set-Cookie: _zcsr_tmp=24a027ad-3cd2-4edf-b641-b792d3ffede8;path=/;SameSite=Strict;Secure;priority=high[\r
    
    3:05:05,908] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Pragma: no-cache[\r][\n]"
    3:05:05,909] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Cache-Control: no-cache[\r][\n]"
    3:05:05,909] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Expires: Thu, 01 Jan 1970 00:00:00 GMT[\r][\n]"
    3:05:05,909] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Set-Cookie: JSESSIONID=9FD064E43DACD49060E958A34C2E0325; Path=/; Secure[\r][\n]"
    3:05:05,909] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "X-Frame-Options: SAMEORIGIN[\r][\n]"
    3:05:05,910] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "X-UA-Compatible: IE=9, IE=10[\r][\n]"
    3:05:05,910] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "Content-Disposition: attachment; filename=response.txt;[\r][\n]"
    3:05:05,910] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "X-Download-Options: noopen[\r][\n]"
    3:05:05,910] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "[\r][\n]"
    3:05:05,910] [] DEBUG - wire HTTPS-Sender I/O dispatcher-4 >> "{"error":{"code":6831,"message":"Input Parameter Missing"}}[\n]"
    3:05:05,921] []  INFO - LogMediator To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: , MessageID: urn:uuid:49cdf6b1-0ac6-4728-bc92-f8658b4a88
    : request, ==API Response====== = {"error":{"code":6831,"message":"Input Parameter Missing"}}
    
    3:05:05,925] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "HTTP/1.1 400 [\r][\n]"
    3:05:05,925] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "X-Frame-Options: SAMEORIGIN[\r][\n]"
    3:05:05,925] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "X-UA-Compatible: IE=9, IE=10[\r][\n]"
    3:05:05,926] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Cache-Control: no-cache[\r][\n]"
    3:05:05,927] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "X-Content-Type-Options: nosniff[\r][\n]"
    3:05:05,927] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Content-Disposition: attachment; filename=response.txt;[\r][\n]"
    3:05:05,927] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "X-Download-Options: noopen[\r][\n]"
    3:05:05,927] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Set-Cookie: JSESSIONID=9FD064E43DACD49060E958A34C2E0325; Path=/; Secure[\r][\n]"
    3:05:05,927] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Set-Cookie: _zcsr_tmp=24a027ad-3cd2-4edf-b641-b792d3ffede8;path=/;SameSite=Strict;Secure;priority=high[\
    
    3:05:05,928] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Set-Cookie: zpct=24a027ad-3cd2-4edf-b641-b792d3ffede8;path=/;SameSite=None;Secure;priority=high[\r][\n]"
    
    3:05:05,928] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Expires: Thu, 01 Jan 1970 00:00:00 GMT[\r][\n]"
    3:05:05,929] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Pragma: no-cache[\r][\n]"
    3:05:05,929] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "X-XSS-Protection: 1[\r][\n]"
    3:05:05,929] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Content-Type: application/json;charset=utf-8[\r][\n]"
    3:05:05,930] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Date: Fri, 16 Oct 2020 07:35:05 GMT[\r][\n]"
    3:05:05,930] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Transfer-Encoding: chunked[\r][\n]"
    3:05:05,930] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "Connection: Close[\r][\n]"
    3:05:05,930] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "[\r][\n]"
    3:05:05,931] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "3c[\r][\n]"
    3:05:05,931] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "{"error":{"code":6831,"message":"Input Parameter Missing"}}[\n]"
    3:05:05,931] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "[\r][\n]"
    3:05:05,931] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "0[\r][\n]"
    3:05:05,932] [] DEBUG - wire HTTP-Listener I/O dispatcher-2 << "[\r][\n]"
    

    Can Anyone please give me a solution for this?

    解决方案

    Mock zoho api (use any simple python, pip install web server) and dump request came from ESB and see what is missing in request. Some of the header most probably missing, Content-Disposition Content-Type

    API states "name" parameter is mandatory.

    这篇关于通过API中的WSO2 EI 6.1.1进行附件处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆