上几次和大家分享过就是可以用IBM i 的IWS server去创建Web server后去部署构建REST API service,这个是用AS400 RPG的语言去做的,之后小编在想是不是也有Java 和Python语言也是可以构建,然后一查发现真的有很多,Java的更是五花八门,最新的主流是Spring Boot后续如果有时间做一个Java Spring Boot 的方式给大家展示.Python主流是两个架构,一个FASTAPI, 一个是 Flask. 这次主要用FASTAPI 做一个抛转引玉的作用,最后多嘴下这些轻量级的架构是可以在Docker 里面部署运用的,也为以后的微服务API 做铺垫.
这个是只要下载PyCharm 和配置对应的python 的环境,如果没有对应的FAST API,可以在PyCharm 的Terminal 里面安装.
pip install fastapi
pip install uvicorn[standard]
import uvicornfrom fastapi import FastAPIimport requestsimport jsonfrom fake_useragent import UserAgentimport warningsfrom flask_cors import cross_originfrom fastapi.middleware.cors import CORSMiddlewarefrom pydantic import BaseModelfrom fastapi import FastAPI, Headerfrom typing import Optionalimport uvicornwarnings.simplefilter('ignore', DeprecationWarning)#定义request bodyclass Item(BaseModel):name: strdescription: str = Noneprice: floattax: float = Noneclass User(BaseModel):username: strfull_name: str = Noneapp = FastAPI()# Get 方法之带Path Parm@app.get('/nihao/{file_path:path}')async def read_file(file_path: str):result = {'code': 200, 'message': file_path}return result# Get 方法之 带Header parm@app.get("/items/1")async def read_items(*, abc: str = Header("Hlao l"), hello: str = Header("niha1o"), user_agent: str = Header(None)):return {"abc":abc+hello+ user_agent}# Get 方法之 Query parm@app.get("/items/")async def read_items(*,a: str = "wo de"):return {"Query Parm": a}# Post 方法之带 多个header + Request Body@app.post("/items/121")async def update_item(*,abc: str = Header("Hlao l"), hello: str = Header("niha1o"), user_agent: str = Header(None),item: Item, user: User):results = {"item": item, "user": user,"Hello":hello}return results#主方法来执行,前面都是定义对应的方法if __name__ == '__main__':uvicorn.run(app=app,host="localhost",port=80,workers=1)# 最后保存成FASTAPI.py 文件
执行python文件:
python FASTAPI.py后台log:C:\Users\MAIBENBEN\AppData\Local\Programs\Python\Python39\python.exe E:/Program/python_project/FASTAPI.pyINFO: Started server process [2724]INFO: Waiting for application startup.INFO: Application startup complete.INFO: Uvicorn running on http://localhost:80 (Press CTRL+C to quit)
通过Postman效果展示:
Get 方法之 Path Parm
![]() |
Get 方法之 Header parm
|
Get 方法之 Query parm
|
Post 方法之多个header + Request Body
|
如果大家有兴趣,对应的API的 Postman配置去小编的GitHUB上下载:https://github.com/SaidyWin/SaidyWin.github.io

文章转载自啊皮,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。










