如何以编程方式触发 Spark Java Web Framework 请求

How to trigger Spark Java Web Framework request programmatically

Spark 框架有没有办法以编程方式触发请求?假设我们有

http.get("/hello/:route_param") { "Hello Spark!" }

如何调用它,使用适当的 pathquerybody 等,例如:

http.call(
  url  = "/hello/alex?a=b", 
  body = "{ value: 20 }"
) // => "Hello Spark!"

P.S.

我需要它来添加批量 /batch 路由 - 因此可以使用其他路由和参数列表调用它并返回结果列表。

如果您所说的“以编程方式”是指“不启动 HTTP 服务器并执行 HTTP 请求”,那么我认为答案是 。 Spark 不提供这种开箱即用的功能。

有一些可能的解决方法:

  1. 您可以在您的应用程序中启动 Spark 并触发 HTTP 请求。这种方法的一个例子是 integration test 我为我的 Spark add-on
  2. 写的
  3. 使用 MockRunner's Servlet module 创建一个(假的)HttpServletRequest。使用 RequestResponseFactory.create(HttpServletRequest) 将其变成 Spark Request。响应也是如此。将 Spark Route 重构为单独的 class,并使用您刚刚创建的 RequestResponse 变量调用它。