Насколько я понимаю, де-факто метод обслуживания SPA - это реализация метода catch для всех запросов GET. Итак, что произойдет, если я как хозяин API, так и обслуживаю SPA с того же сервера, и вам нужно получить ресурс, например. /users
?Обслуживание SPA с сервера API
Как вы обрабатываете вызовы API API/ресурсы в настройках, где ваш сервер API обслуживает ваш SPA?
например. с помощью экспресса:
import express from 'express'
import path from 'path'
const app = express()
const port = 3000
app.use(express.static(path.resolve(__dirname, '../client/dist')));
// Conflict here <---------------------
app.get('/users', (req,res) => {
// respond with users
})
// And here <---------------------
app.all('*', (req, res) => {
res.sendFile(path.resolve(__dirname, '../client/dist', 'index.html'));
})
app.listen(process.env.PORT || port,() => {
console.log(`App listening on ${process.env.PORT || port}`)
})
Интуиция мне подсказывает, реализовать поймать все запросы GET для SPA, осуществляя исключение из /api
ресурса для вызовов API. Но тогда есть проблема с доступом к /api
через браузер.
Любые идеи очень ценятся.