开发中的代理前端HTTP调用

时间:2019-03-09 21:20:16

标签: spring spring-boot kotlin proxy elm

我正在建立一个小型网站。后端使用 Kotlin 编写并使用Spring boot,而前端则使用Elm构建。

生成的javascript应用将由我的后端在部署时静态提供。

为了发展,我目前是这样工作的:

  • localhost:8080
  • 上提供我的spring boot应用程序
  • 使用create-elm-app
  • 在b上提供我的Elm应用

主要原因是create-elm-app允许 Elm应用程序的热编译和热重装,这非常方便。

问题在于,我必须在本地的其他端口上设置所有elm http调用,这意味着我必须更改生产代码。

理想情况下,我想:

  • 这两种方法都有实时重新编译的elm代码(我在节点中使用chokidar,但未找到直接的Java替代方法),并且与spring boot hot reload相结合
  • 具有create-elm-app重定向我的API调用
  • 或自动将我的所有呼叫通过第三方代理到另一个位置

有人对此有经验吗?您会推荐什么设置?

干杯

1 个答案:

答案 0 :(得分:1)

好的,使用代理一词确实有帮助!

create-elm-app文档似乎已经预料到了这种用例。您可以阅读更多about it here

基本上需要做的是:

  • 在elm项目的根目录下创建一个elmapp.config.js文件,内容如下(在我的情况下,您可以调整):
module.exports = {
    proxy: "http://localhost:8080",
}

然后,在您的elm代码中,使用绝对URL。例如:

makeCreateGameUrl : Model -> String
makeCreateGameUrl model =
    absolute
        [ "game" ]
        [ string "players" (joinListOfStrings model.newPlayerNames) ]

此后,您的API调用将直接重定向到您的后端。