使⽤FastAPI快速搭建远程API接⼝本⽂⾯向需要⾃⾏搭建API接⼝服务器读者,过程操作⽐较简单
使⽤SpringBoot 等框架⽤户可以考虑是否忽略,
引⼦
需要做API接⼝有很多原因
前端开发使⽤api接⼝,依赖后端,假数据使⽤Mock或者本地json之类,不够灵活
⾃⼰Demo或者程序,需要提供接⼝调⽤
原则上,部署完毕,后期可以做很接⼝开发,主要为APP提供接⼝使⽤,
⾄于安全和负载是后期的事情了,本⽂连⽇志和数据库都没来得及加....
另:⾃⼰搭建API服务器,成本和步骤是复杂度可以⾃⾏对⽐商业云服务后台
效果
玳瑁猫进家门预示着什么
浏览器/PostMan 可以请求到服务器部署的 get返回结果 ,后续业务处理未完待续
是的,就是这么简单的需求
准备材料
服务器 [⽩P的甲⾻⽂主机],具体步骤请⾃⾏搜索关键字 "甲⾻⽂"“免费服务器”
注:免费服务器申请有失败概率,如没有成功,可以考虑其他平台云服务器
SSH ⼯具,⽰例使⽤Xshell
步骤
申请服务器,创建⽰例,上传SSH密钥打开端⼝ 8080 ,
建议创建Ubuntu主机,我选CentOS ,结果遇到很多问题,
需要⾃⾏安装很多依赖,pip iptable等,后期部署完毕,发现8080端⼝没开
SSH连接到,⽬标主机,
centos和ubuntu
如果使⽤Oracle主机,ubuntu默认密码是ubuntu ,CentOS默认密码opc
开始安装
$ pip install uvicorn
$ pip install uvicorn
安装完毕,按照Demo⽰例,写个main.py
from fastapi import FastAPI
app = FastAPI()
@("/")
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 [0.0.0.0:8080](0.0.0.0: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.
phpdefine怎么用
INFO:    45.117.99.101:3662 - "GET / HTTP/1.1" 200 OK
接下来在浏览器或者使⽤Postman访问 ,就可以看到返回结果了x:8080/
过程中遇到的问题
centos 缺少各种依赖库,pip iptables,
端⼝未开放
本⽂参考:[排名部分现后,感谢作者]
1.FastAPI官⽅location翻译中文
视酷源代码买了有什么好处2..FastAPI简单操作
3.FastApi环境安装+服务器部署
4.uvicorn|更改fastapi服务器运⾏host和port
5.检测服务器端⼝是否被封(墙)
6.Centos查看端⼝占⽤情况和开启端⼝命令
7.CentOS7出现Unit iptables.service could not be found
8.WEB框架对⽐——Django、Flask、FastAPI
9.Xshell实现Windows上传⽂件到Linux主机
10.Xshell官⽹下载
>php视频教程2021

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。