Soy nuevo en React.JS y uso react-create-app para configurar el proyecto.
Me pregunto si hay alguna manera de usar el mismo host y puerto para responder a las solicitudes de API (el servidor sirve tanto para el front-end como para el back-end, como en Django).
El documento menciona esto pero no entra en detalles.
Por mismo host y puerto quiero decir que solo necesito una terminal y ejecutar npm start una vez.
Si solo hay para el desarrollo, simplemente puede agregar
"proxy": "http://localhost:8000/" a su package.json .
Esto transferirá sus consultas API de React a su otra aplicación que trabaja en otro puerto (allí 8000).
Después de terminar, debe compilar el código de producción ( npm build ), cuyo resultado es un index.html que carga los paquetes js y css compilados.
Desde Django, solo necesita apuntar su IndexView a este archivo (puede hacer esto como TemplateView, pero tal vez sea más simple solo renderizar como allí:
class IndexView(View): def get(self, request): index = open(str(settings.BASE_DIR.path('build/index.html')), 'r') return HttpResponse(content=index.read())Luego, solo use su API de React; desde este punto, ambos funcionarán en un puerto común.
Volver al modo de desarrollo: también puede configurar su Webpack para crear su aplicación cada vez que guarde los cambios y solo ejecútelos desde Django (o Rails, o Node, o cualquiera que sea su backend), pero prefiero usar proxy, que mantiene ambas aplicaciones. en sus contextos nativos hasta que finalice el desarrollo. Una desventaja de esta solución es que siempre necesita ejecutar ambas aplicaciones simultáneamente.
Alguna información útil y soluciones sobre esto que encontré allí: https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/