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


本文面向需要自行搭建API接口服務器讀者,過程操作比較簡單

使用SpringBoot 等框架用戶可以考慮是否忽略,

引子

需要做API接口有很多原因

  • 前端開發使用api接口,依賴后端,假數據使用Mock或者本地json之類,不夠靈活
  • 自己Demo或者程序,需要提供接口調用

原則上,部署完畢,后期可以做很接口開發,主要為APP提供接口使用,

至於安全和負載是后期的事情了,本文連日志和數據庫都沒來得及加....

另:自己搭建API服務器,成本和步驟是復雜度可以自行對比商業雲服務后台

效果

瀏覽器/PostMan 可以請求到服務器部署的 get返回結果 ,后續業務處理未完待續

是的,就是這么簡單的需求

准備材料

  1. 服務器 [白P的甲骨文主機],具體步驟請自行搜索 關鍵字 "甲骨文"“免費服務器”

    注:免費服務器申請有失敗概率,如沒有成功,可以考慮其他平台雲服務器

  2. 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 [http://0.0.0.0:8080](http://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.
INFO:     45.117.99.101:3662 - "GET / HTTP/1.1" 200 OK

接下來在瀏覽器或者使用Postman訪問 ,就可以看到返回結果了

http://xxx.xxx.xxx.xxx: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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM