j*******n 发帖数: 4 | 1 最近有个需求,就是要给几个http request写个R language的SDK来发出这好几个http
request。
要写的http request太多了,而且end point还在调整,所以打算走代码生成的路
试了一下这个package的R-sdk generator,确实能用,打算就用这个:
https://github.com/Kong/httpsnippet
在尝试用scala来parse Postman collection echo endpoint那37 个request做test
cases。
这里有个网站,把postman collection echo endpoint的json export出来,复制粘贴
,就可以生成case class:
https://transform.tools/json-to-scala-case-class
但是要怎么要才能处理 整个json呢?因为postman json里面的case class存在
optional,试了play json,感觉没搞出来,有大牛愿意给个代码指导一下吗?
这里提供一个driver code:
import scala.util.{Failure, Success, Try}
import play.api.libs.json.{JsObject, JsValue, Json}
object PostmanParser extends App {
val postman_collections = "./Postman_Echo.postman_collection.json"
val jsonifiedString = scala.io.Source.fromFile(postman_collections).
mkString
val myJsonData = Try(Json.parse(jsonifiedString)).map(_.as[RootInterface])
myJsonData match {
case Success(myValue) => // compare your case class here
// println(myValue.info._postman_id)
case Failure(err) => println("none")
throw new Exception("couldnt parse: ",err)
}
}
RootInterface是case class,可以自行查阅play json的用法。欢迎使用其他json
library。想看看scala或者java能不能做出来。按道理javascript和python应该能做,
但是python会用到很多次json.load() |
|