快速建立API服务使用 flask,要先安装
先执行 python -m pip install flask
然後写个 app.py 档案
上代码! 如下:
from flask import Flask, request, jsonify
import time, random
app = Flask(__name__)
bookStoreList = [
{"id": 1, "name": "PYTHON_DEV", "price": 100, "count":10},
{"id": 2, "name": "JAVA_DEV", "price": 200, "count":20},
{"id": 3, "name": "GOLANG_DEV", "price": 300, "count":30},
{"id": 3, "name": "C#_DEV", "price": 400, "count":40}
]
def _find_next_id():
return max(book["id"] for book in bookStoreList) + 1
def _find_book(name):
result = list(filter(lambda data: data.get('name')==name, bookStoreList))
if len(result) > 0 :
return {'success':True,'bookinfo':result[0]}
else :
return {'success':False,'bookinfo':None}
@app.get("/bookstore/getbooks")
def get_books():
return jsonify(bookStoreList)
@app.post("/bookstore/buybook")
def buy_book():
if request.is_json:
bookinfo = request.get_json()
print('bookinfo: ', bookinfo)
# 随机API耗费时间 1~10s
time.sleep(random.randrange(1,10))
return jsonify(_find_book(bookinfo["BookName"])), 201
return {"error": "Request must be JSON"}, 415
@app.post("/bookstore/addbook")
def add_book():
if request.is_json:
newbookinfo = request.get_json()
newbookinfo["id"] = _find_next_id()
bookStoreList.append(newbookinfo)
return newbookinfo, 201
return {"error": "Request must be JSON"}, 415
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8321)
完成後直接执行 python app,便可以看到以下资讯
代表API服务已经成功启动,然後就可以开始做测试,
这边我自己启动的port是 8321,这个可自行调整
改 app.run(host="0.0.0.0", port=8321) 这个就行了
里面有几只API其中一支的 curl 如下
curl --location --request POST 'http://127.0.0.1:8321/bookstore/buybook' \
--header 'Content-Type: application/json' \
--data-raw '{
"BookName":"PYTHON_DEV"
}'
另外为了给第一篇做测试,/bookstore/buybook 里面有加 随机API耗费时间,
大概就这样,Cheer !
>>: 前端工程师也能开发全端网页:挑战 30 天用 React 加上 Firebase 打造社群网站|Day5 注册登入页面
只要有写过程序,相信一定都有听过 GitHub 这个网站,不但可以在上面管理、分享自己的 code,...
在布建Security Hub前必须注意的事项 因为Security Hub是一项汇集所有资安服务调...
活动图类似於业务工作流程图或简单的流程图,具有更丰富的语义。它描述了系统活动,或进行活动的人,以及这...
Hook的useRef函式用於function component有分两种方式做介绍, 请先在要使用...
原始题目 Design a stack that supports push, pop, top, ...