【发布时间】:2019-04-18 21:04:50
【问题描述】:
我将vue-cli 用于前端,lumen 用于后端,我很好奇在 vue 中存储 API 根 URL 和端点的最佳实践是什么?
现在我在 src 目录中有 constants.js 文件,其中 API 根 URL 和端点是这样的:
const BASE_URL = "http://localhost:8000"
export const AddLanguge = BASE_URL + "/api/languages"
当我需要例如在组件中实现添加语言功能时,我会从 constants.js 导入所需的 API 端点,如下所示:
import { AddLanguge } from '@/constants'
然后使用 axios 发出请求
this.$http.post(AddLanguge, params).then(response => {
if (response.status == 200) {
this.addLanguage(response.data.data)
} else {
this.setHttpResponseDialog(response)
}
}).catch(er => {
this.setHttpResponseDialog("Error")
})
我搜索了这个问题,但没有明确的答案有人说:没关系。
其他人说:你必须将那种数据存储在 dev.env.js 和 prod.env.js 中很糟糕,最重要的事实是我不明白他们为什么这么说,为什么将这些数据保存在.env 文件?或者还有其他更好的方法吗?
你们能否提供一个正确的答案和很好的解释,或者如果没有正确的答案,这取决于情况我如何决定哪种方式适合我的情况?
【问题讨论】:
-
如果出于安全原因您的意思是“将它们存储在哪里”,那么这并不重要,因为您的安全性将在后端和处理请求中,而不是隐藏您的 api 路由。就像,您几乎应该能够向世界宣布您的 API 路由,并且使它们安全的是您如何处理人们戳 API 的方式,而不是隐藏 API。如果您的意思是从实际放置它们的角度来看,那么我会将它们放在 Vuex 商店中,可能在它自己的模块中。您不要将
env文件用于敏感数据,否则这只是您实用的问题。
标签: http vue.js vuejs2 web-frontend