Как получить доступ к Backend Fastapi с другой машины/IP в одной локальной сети?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как получить доступ к Backend Fastapi с другой машины/IP в одной локальной сети?

Сообщение Anonymous »

И бэкэнд Fastapi, и Frontend Next.js работают на Localost . На том же компьютере, фронт делает вызовы API с использованием Fetch без каких -либо проблем. Однако на другом компьютере в сети той же , например, 192.168.x.x , Frontend выполняется, но его вызовы API больше не работают.
Я пытался использовать прокси, как следующий. PrettyPrint-Override ">
export default function People({setPerson}:PeopleProps) {
const fetcher = async (url:string) => await axios.get(url).then((res) => res.data);
const { data, error, isLoading } = useSWR(`${process.env.NEXT_PUBLIC_API}/people`, fetcher);
if (error) return "Failed to load...";
return (

{isLoading? "Loading..." :data.map((person: Person) =>
{person.name} )}

)
}
< /code>
Приложение Next.js загружает файл env.local < /code> в запуске, который содержит:
NEXT_PUBLIC_API=http://locahost:20002
Бэкэнд:
rom typing import List
from fastapi import APIRouter, Depends
from ..utils.db import get_session as db
from sqlmodel import Session, select
from ..schemas.person import Person, PersonRead
router = APIRouter()

@router.get("/people", response_model = List[PersonRead])
async def get_people(sess: Session = Depends(db)):
res = sess.exec(select(Person)).all()
return res

Frontend работает с: npm запустить dev и выходы
ready - started server on 0.0.0.0:3000, url: http://localhost:3000

Бэкэнд выполняется с: uvicorn Hogar_api.main: App --PORT = 20002 -Хост = 0.0.0.0 -Reload и выходы:
INFO: Uvicorn running on http://0.0.0.0:20002 (Press CTRL+C to quit)

Когда я открываю браузер на http: // localhost: 3000 на одной и той же машине Список человека отображается на экране. такая же сеть , я получаю сообщение «Не удалось загрузить ...».from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

origins = [
"http://localhost:3000",
]

app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)


Подробнее здесь: https://stackoverflow.com/questions/750 ... local-netw
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»