使用FastAPI快速搭建远程API接口

文章正文
发布时间:2025-05-13 00:16

使用SpringBoot 等框架用户可以考虑是否忽略,

引子

需要做API接口有很多原因

前端开发使用api接口,依赖后端,假数据使用Mock或者本地json之类,不够灵活

自己Demo或者程序,需要提供接口调用

原则上,部署完毕,后期可以做很接口开发,主要为APP提供接口使用,

至于安全和负载是后期的事情了,本文连日志和数据库都没来得及加....

另:自己搭建API服务器,成本和步骤是复杂度可以自行对比商业云服务后台

效果

浏览器/PostMan 可以请求到服务器部署的 get返回结果 ,后续业务处理未完待续

是的,就是这么简单的需求

准备材料

服务器 [白P的甲骨文主机],具体步骤请自行搜索 关键字 "甲骨文"“免费服务器”

注:免费服务器申请有失败概率,如没有成功,可以考虑其他平台云服务器

SSH 工具,示例使用Xshell

步骤

申请 服务器,创建示例,上传SSH密钥 打开端口 8080 ,

建议创建Ubuntu主机,我选CentOS ,结果遇到很多问题,

需要自行安装很多依赖,pip iptable等,后期部署完毕,发现8080端口没开

SSH连接到,目标主机,

如果使用Oracle主机,ubuntu默认密码是ubuntu ,CentOS默认密码opc

开始安装

$ pip install uvicorn $ pip install uvicorn

安装完毕,按照Demo示例,写个main.py

from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "FastAPI"}

通过xshell上传到服务器

这里使用xshell直接拖到命令行就可以,如果提示,需要安装 lrzsz

yum install lrzsz

启动 uvicorn服务

uvicorn main:app --host '0.0.0.0' --port 8080 --reload

参数说明

main: 指定主程序文件main.py文件,

如果main.py文件改成test.py 则命令也需要改为uvicorn test:appapp

在main.py中使用app = FastAPI()创建的对象

--host:远程主机ip,如果是本地则可以不要这个参数

--host:端口号--reload:在修改源代码后程序会自动重新加载不用退出重新启动

运行成功后,会看到日志:

[root@bang-20210926-1658 ~]# uvicorn main:app --host '0.0.0.0' --port 8080 --reload INFO: Will watch for changes in these directories: ['/root'] INFO: Uvicorn running on [:8080](:8080/) (Press CTRL+C to quit) INFO: Started reloader process [36821] using statreload INFO: Started server process [36823] INFO: Waiting for application startup. INFO: Application startup complete. INFO: 45.117.99.101:3662 - "GET / HTTP/1.1" 200 OK

接下来在浏览器或者使用Postman访问 ,就可以看到返回结果了

:8080/

过程中遇到的问题

centos 缺少各种依赖库,pip iptables,

端口未开放

本文参考:[排名部分现后,感谢作者]

1.FastAPI官方

https://www.uvicorn.org/

2..FastAPI简单操作

https://www.jianshu.com/p/3d391d022239

3.FastApi环境安装+服务器部署

https://blog.csdn.net/suyancc/article/details/106588589

4.uvicorn|更改fastapi服务器运行host和port

https://blog.csdn.net/qq_31989047/article/details/105838679

5.检测服务器端口是否被封(墙)

https://blog.csdn.net/willingtolove/article/details/104242802

6.Centos查看端口占用情况和开启端口命令

https://cloud.tencent.com/developer/article/1473377

https://www.cnblogs.com/xqzt/p/4919191.html

7.CentOS7出现Unit iptables.service could not be found

https://blog.csdn.net/good_luck_l/article/details/94468915

8.WEB框架对比——Django、Flask、FastAPI

https://www.cnblogs.com/zhuminghui/p/14741536.html

9.Xshell实现Windows上传文件到Linux主机

https://blog.csdn.net/shenjianxz/article/details/56686449

10.Xshell官网下载

https://www.netsarang.com/en/xshell/

首页
评论
分享
Top