WSO2 Сохраняйте каждый запрос и ответ с IP-адресом запрашивающей стороны в базе данных MYSQL - PullRequest
0 голосов
/ 01 октября 2018

Я разработал некоторые API-интерфейсы в студии разработчиков WSO2 и разместил их на WI2 EI Server.

А затем я опубликовал эти URL-адреса в WSO2 API Publisher и внедрил там защиту oAuth2.

Наконец клиент / потребитель имеет доступ к URL-адресам из API Publisher.

Теперь я хочу, чтобы каждый запрос и ответ службы сохранялся во внешней таблице MySQL.

Любая идеячто делать в потоке WSO2 EI.или любой другой альтернативный вариант.

1 Ответ

0 голосов
/ 01 октября 2018

Вам нужно сохранить request, когда дело доходит до последовательности, в property mediator, и то же самое должно быть сделано для response.Вам нужно создать data service, в котором вам нужно упомянуть запрос MySQL, иначе вы можете использовать DB mediator.Далее, перед завершением последовательности out с помощью send or loopback or respond mediator, вам нужно использовать clone mediator и вызывать либо data service, либо DB mediator.Для DB Mediator см. Ссылку ниже.https://docs.wso2.com/display/ESB500/Sample+361%3A+Introduction+to+DBReport+Mediator

Ниже приведен фрагмент кода

<sequence name="cloneTest" xmlns="http://ws.apache.org/ns/synapse">

    <in>
     <property expression="." name="requestBody" scope="default" type="STRING"/>

     <call>
     <endpoint key="conf:/custom/TestEP/BennerERPEndpoint.xml"/>
     </call>
     <property expression="." name="responseBody" scope="default" type="STRING"/>
        <clone sequential="false">
            <target>
                <sequence>
                    <log level="custom">
                        <property name="Into DB Mediator Sequence" value="DBMediator"/>
                    </log>
                    <sequence key="DBMediator"/>

                </sequence>
            </target>
            <target>
                <sequence>
                    <log level="custom">
                        <property name="Exiting" value="Exit"/>
                    </log>
                   <send/>
                </sequence>
            </target>
        </clone>
    </in>
</sequence>
...