开发中代理前端 HTTP 调用
Proxy front-end HTTP calls in development
我正在建立一个小型网站。后端用Kotlin编写,使用Spring boot, and the front-end is built in Elm.
生成的 java 脚本应用程序将在部署时由我的后端静态提供。
为了开发,我目前是这样工作的:
- 在 localhost:8080
上提供我的 spring 启动应用程序
- 使用 create-elm-app
在 b 上提供我的 Elm 应用程序
主要原因是create-elm-app允许热编译和热重载Elm应用程序,这非常方便。
这个问题是我必须在本地针对另一个端口设置我所有的 elm http 调用,这意味着我必须更改生产代码。
理想情况下,我想:
- 要么有实时重新编译的 elm 代码改变(我在节点中使用 chokidar,但没有找到直接的 java 替代)耦合到 spring 引导热重载
- 让 create-elm-app 重定向我的 API 调用
- 或者通过第三方将我所有的呼叫自动代理到另一个位置
有人有这方面的经验吗?您会推荐什么设置?
干杯,
好的,使用代理这个词很有帮助!
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 调用将直接重定向到您的后端。
我正在建立一个小型网站。后端用Kotlin编写,使用Spring boot, and the front-end is built in Elm.
生成的 java 脚本应用程序将在部署时由我的后端静态提供。
为了开发,我目前是这样工作的:
- 在 localhost:8080 上提供我的 spring 启动应用程序
- 使用 create-elm-app 在 b 上提供我的 Elm 应用程序
主要原因是create-elm-app允许热编译和热重载Elm应用程序,这非常方便。
这个问题是我必须在本地针对另一个端口设置我所有的 elm http 调用,这意味着我必须更改生产代码。
理想情况下,我想:
- 要么有实时重新编译的 elm 代码改变(我在节点中使用 chokidar,但没有找到直接的 java 替代)耦合到 spring 引导热重载
- 让 create-elm-app 重定向我的 API 调用
- 或者通过第三方将我所有的呼叫自动代理到另一个位置
有人有这方面的经验吗?您会推荐什么设置?
干杯,
好的,使用代理这个词很有帮助!
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 调用将直接重定向到您的后端。