Karate 如何设置基本API?我看到第一个API添加了双引号';s的反应

Karate 如何设置基本API?我看到第一个API添加了双引号';s的反应,karate,Karate,12:59:28.447[main]INFO com.intuit.karate.StepDefs-[print]“5ca627bf3edd851238e59c9e”2019年4月16日12:59:28 PM org.glassfish.jersey.logging.LoggingInterceptor log严重:2*在主线程上发送客户端请求2>获取 你的帖子真的很难理解 试用 Given path '/api/metrics/product/ABC' When method get *

12:59:28.447[main]INFO com.intuit.karate.StepDefs-[print]“5ca627bf3edd851238e59c9e”2019年4月16日12:59:28 PM org.glassfish.jersey.logging.LoggingInterceptor log严重:2*在主线程上发送客户端请求2>获取


你的帖子真的很难理解

试用

Given path '/api/metrics/product/ABC'
When method get
   * def id = get response
   * print id
   * def basePathProducts = '/another/api/' + id + '/param'   
  Given path basePathProducts
  When method GET
  Then status 200
有关更多信息,请参阅本手册:

编辑: 您的参数有问题

Given url yourURLVariable + 'another/api/'+ id + '/param'
给出:

* def id = "5ca627bf3edd851238e59c9e"
* print id

因此,您的变量
id
“5ca627bf3edd851238e59c9e”
而不是
5ca627bf3edd851238e59c9e

我认为您将事情过度复杂化了,并且忽略了
路径
语法是为您通常需要做的事情而设计的

不要
def basePathProducts
执行此操作,请参见如何将
id
变量轻松插入路径:

13:24:19.783 [print] 5ca627bf3edd851238e59c9e

我添加这些是为了从响应中删除第一个和最后一个字符,在我的例子中是双引号。谢谢你们的回应

谢谢你的回复,阿德里安,我无法编辑代码,因为我通过手机(远离我的机器)发布了代码。第一个API的响应是一个字符串,因此如何避免将双引号添加到第二个url。我确实尝试了“给定url”,直到看到在url中添加了%22。提前谢谢。@Knight我编辑了我的答案。问题在于你在响应中得到的值,在stringYes Adrien中有
,我添加了一个JS函数来删除字符串中的引号并附加到URL中。感谢编辑Thomas。第一个响应中的双引号(“5ca627bf3ghut56c9e”)将作为%22追加到URL中。如何跳过此操作?@Knight
*def id=get response
看起来有误,请查看文档和示例,有很多方法可以清晰地提取您需要的数据-除非您的响应是字符串-然后在需要时执行替换操作,没有注意到“get”按钮“来到这里……这是一次失败的尝试:p。是的,我得到的回应是一个字符串。
Given path 'another', 'api', id, 'param'
* def newresp = function(id){ return id.slice(1, -1); }
* def id = newresp(response)