作者aoksc (重出江湖)
看板Web_Design
标题[问题] 前端呼叫API路径问题
时间Mon Oct 29 11:58:29 2018
请问各位
目前比较推荐的网页串接後端API的作法是什麽呢?
我目前是预计後端用C#前端框架用React
前端打包部份用Webpack
请问像这样子的架构专案要怎麽开呢?
以前有遇过是类似开一个空的MVC专案用gulp
然後在前端直接call後端controller的路径来取得资料render画面
新的专案有考虑前端开一个专案
後端开一个专案的架构
但想请问如果这样的架构下
那我前端要呼叫API的话
我要怎麽设定呢?
例如以前的专案可能只要/{某个controller}/{Action}
因为都在同一个专案底下所以也不须考虑Host name的问题
那如果真的分成两个独立专案的话这问题要怎麽解决呢?
因为小弟对於前端真的不太熟悉
希望各位能指点一下或是给我一些key word让我有个方向
感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.65.133
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1540785512.A.956.html
1F:→ crossdunk: 不懂你意思 10/29 14:23
2F:→ crossdunk: 前後端拆开的话呼叫的就是後端的domain name啊 10/29 14:24
3F:推 diabloevagto: Restful 10/29 14:44
4F:→ diabloevagto: 你後端方式就照旧,只是前面加上 domain name 10/29 14:45
5F:推 Neisseria: 就前後端分离和 CORS,可以做,一开始工会比较多 10/29 19:34
我的意思就是说之前遇过网页跟Controller都在同一个专案中
那麽我用ajax呼叫的url只需要像是/Home/GetXXX
因为都是在同一个专案中
所以不管是在本机还是在正式环境都没差
但如果是在不同专案的话
url不就是要指定domain name吗?
但本机测试的domain name又跟正式环境不一样
我的认知是这样所以才会有这疑问
还是其实有简单的解法吗?
※ 编辑: aoksc (150.117.240.159), 10/29/2018 22:08:05
6F:推 shter: 基本上 API 那边不管是 PHP Node.js python perl ... 10/29 23:10
7F:→ shter: 不就是一串 url 吗? 就算开发环境跟正式环境 domain 不一样 10/29 23:11
8F:→ shter: 结构依然是 {domain name}/Home/GetXXX 10/29 23:11
9F:→ shter: 前面就是一个固定的变数,比如 let domain="aaa.bb.cc"; 10/29 23:12
10F:→ shter: 你的 code 组 url 时就是 domain + "/HomeGetXXX" 10/29 23:13
11F:→ shter: 然後依照你是在开发或正式环境,去改 domain 的值 10/29 23:13
12F:→ shter: 要嘛就所有 url 都加上 domain + path , domain 用全域变数 10/29 23:14
13F:→ shter: 不然就所有 url 写在同一支 js , domain 可用区域变数 10/29 23:15
14F:→ qq076qq076: react 可以用env替换环境变数啊 10/31 03:08
15F:→ qq076qq076: build的时候指定不同env就可以了 10/31 03:09
16F:推 chatnoir: webpack可以设定proxy,build的时候再挂domain即可 11/06 00:53