快速建立API服务使用 flask,要先安装
先执行 python -m pip install flask
然后写个 app.py 档案
上代码! 如下:
from flask import Flask, request, jsonifyimport time, randomapp = 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 !