2016-02-24 3 views
1

Запрос, поступающий от внешнего источника до wso2 esb (версия 4.8.0), имеет количество полей. В рамках проверки мы должны проверить обязательные поля в wso2 перед обработкой запроса. Может ли кто-нибудь рассказать мне, как и где (файлы) проверять эти поля в wso2.Проверка запроса на WSO2 ESB

запрос Образец:

{ 
    "name" : "abc", 
    "studentId" : { 
     "id1" : "testid", 
     "id2" : "11234", 
     "id3" : "6781" 
    }, 

"details" : [ 
     { 
      "dateOfBirth" : "01-01-2016" 
}] 

Где ID1, ID2, id3 и DateOfBirth являются обязательные поля, которые должны быть проверены, когда resuest приходит WSO2 ESB.

+0

Вам необходимо обработать этот запрос как XML, а затем снова использовать посредник проверки подлинности, схему xsd, в которой эти поля являются обязательными. –

+0

У вас есть к этому пример? Я не могу найти решение – user2326831

+0

вы можете обратиться к http://sparkletechthoughts.blogspot.com/2012/09/how-to-use-validate-mediator-to.html, https://docs.wso2.com/display/ESB481/Пример + 7% 3A + Использование + Схема + Проверка + + + Использование + + Локальный + Реестр + для + Хранение + Конфигурация + Метаданные –

ответ

0

Вы можете просто сделать это, используя некоторые медиаторы фильтров.

Поскольку JSON полезной нагрузки рассматривается как сообщение SOAP внутри ESB вашей полезной нагрузки запроса может быть, как это,

<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <jsonObject> 
     <name>abc</name> 
     <studentId> 
      <id1>testid</id1> 
      <id2>testid</id2> 
      <id3>testid</id3> 
     </studentId> 
     <details> 
      <dateOfBirth>01-01-2016</dateOfBirth> 
     </details> 
     <details> 
      <dateOfBirth>01-01-2012</dateOfBirth> 
     </details> 
    </jsonObject> 
</soapenv:Body> 

Используйте фильтр медиаторы следующие действия для проверки необходимых ключей/значений в запросе.

<!-- xPath boolean() function may evaluate to false if value of id1 is empty/null or request doesn't have that key. --> 
<filter regex="false" source="boolean(//jsonObject/studentId/id1)"> 
    <then> 
    <!-- Generate Error message for id1--> 
    </then> 
    <else> 
     <filter regex="false" source="boolean(//jsonObject/studentId/id2)"> 
      <then> 
      <!-- Generate Error message for id2--> 
      </then> 
      <else> 
       <!-- more filters --> 
      </else> 
     </filter> 
    </else> 
</filter> 
Смежные вопросы