postman 迁移到云后,无法访问部署在deta上的FastAPI中的后端,该问题似乎与SSL有关

k10s72fa  于 2023-06-29  发布在  Postman
关注(0)|答案(1)|浏览(163)

我在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空间文档上搜索,但无法找到解决方案

qltillow

qltillow1#

我错误地省略了一些信息阅读文档,这就是为什么会发生这种情况。
实际上,当您将任何Micro迁移到Deta Space时,它只是私有的,如此处所述https://fastapi.tiangolo.com/deployment/deta/#__tabbed_1_2:~:text= By%20default%2C%20every,accessible%20to%20you,因此您必须设置公共访问。这就是问题所在。解决方案写在上面的链接中。将Spacefile更改为以下内容

v: 0
micros:
  - name: fastapi-deta
    src: .
    engine: python3.9
    public_routes:
      - "/*"

然后运行space push,就可以了。deta空间将使你的API公开,现在你可以像postman一样从任何地方调用它。

相关问题