Используйте Groovy Script для анализа строки запроса, в которой данные встраиваются в путь

спасибо за ваше время и помощь заранее.

Я использую map-сервис soapUI и пытаюсь написать скрипт Groovy. Полученный мной URL запроса запроса выглядит так:

http://server:port/readwrapper/v1/historicalData/medicalHistory/STR/888888_2.16.840.1.113883.3.42.10012.100001.206_h0102a3727570b14038b349136f2a5fd58e0102

и то, что я пытаюсь извлечь из этого URL-адреса,

  1. 2.16.840.1.113883.3.42.10012.100001.206, который является идентификатором сообщества
  2. h0102a3727570b14038b349136f2a5fd58e0102, который является идентификатором документа

Все, что я могу кодировать в Groovy, это:

def reqStr = mockRequest.getHttpRequest().getQueryString()

и я не знаю, как двигаться дальше. Пожалуйста помоги.

1 ответ

Не уверен, что он работает (я не использую SoapUI), но вы можете попробовать:

def (cid,did) = mockRequest.httpRequest
 .requestURI
 .tokenize( '/' )
 .last()
 .tokenize( '_' )
 .drop( 1 )

Если версия Groovy SoapUI не поддерживает drop:

def (cid,did) = mockRequest.httpRequest
 .requestURI
 .tokenize( '/' )
 .last()
 .tokenize( '_' )[ 1..-1 ]

И если он не поддерживает множественное назначение, то:

def parts = mockRequest.httpRequest
 .requestURI
 .tokenize( '/' )
 .last()
 .tokenize( '_' )[ 1..-1 ]
def cid = parts[ 0 ]
def did = parts[ 1 ]

licensed under cc by-sa 3.0 with attribution.