我在python中使用Fast API构建了一个小的API /后端,后端部署在deta上作为micro,并且运行良好。deta更新了他们的系统并转换到deta空间之后,当时我就面临了这个问题。首先,根据他们的指示,我使用这个指南https://deta.space/migration/guides/migrate-a-micro将我的deta micro迁移到deta space应用程序。空间应用程序现在在一个URL上在线。但问题是,它并没有像预期的那样工作。
如果我点击网址,它打开在网页浏览器,并给出了一个respsonse
”
{"detail":"Not Found"}
”
这完全没问题,我的API应该处理任何没有数据的随机GET请求。但这只是其中一种情况。从技术上讲,大多数时候,它必须处理带有一些数据的POST请求,所以当我尝试在Postman中测试API或在我的React Native Frontend中使用它时,它会出现意想不到的错误。
在Postman中复制带有GET请求的相同URL时,它不会给予相同的结果,而是正文
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/auth_assets/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Authorization | Deta Space</title>
<script defer data-domain='deta.space' src='https://plausible.io/js/plausible.js'></script>
<script type="module" crossorigin src="/auth_assets/js/index-88ebf614.js"></script>
<link rel="stylesheet" href="/auth_assets/css/index-718df3f8.css">
</head>
<body>
<div id="app"></div>
</body>
</html>
标题如下x1c 0d1x
我担心的是,它应该给予相同的React,在浏览器中,当要求与 Postman 。
以前版本的deta micro没有遇到这个问题。
如果你遇到类似的问题,或者你知道如何在deta空间上设置FastAPI后端?
我试着在deta空间文档上搜索,但无法找到解决方案
1条答案
按热度按时间qltillow1#
我错误地省略了一些信息阅读文档,这就是为什么会发生这种情况。
实际上,当您将任何Micro迁移到Deta Space时,它只是私有的,如此处所述https://fastapi.tiangolo.com/deployment/deta/#__tabbed_1_2:~:text= By%20default%2C%20every,accessible%20to%20you,因此您必须设置公共访问。这就是问题所在。解决方案写在上面的链接中。将
Spacefile
更改为以下内容然后运行
space push
,就可以了。deta空间将使你的API公开,现在你可以像postman一样从任何地方调用它。