iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0
永豐金融APIs

視覺化跨平台Client與永豐金融證券APIs系列 第 16

Flask API-取得request資料(以ticks API為例)

上次我們測試Flask API已經成功了,
但裡面的參數例如時間等都是直接寫死在程式碼裡,
但正常來說這些變數都應該會隨著使用者的輸入而變動,
所以今天就是要來示範這個部分。

首先Flask API要取得request的值有好幾種方式,
以下常用的有兩種,一個是取得URL後的參數,
一個是取得JSON的值,

取得URL後的參數 = request.args.get('參數名稱')
取得JSON的值 = request.get_json()

今天就用ticks API作為範例來示範,

(1)匯入所需要的庫,要取得request要import相關的庫

import flask
from flask import jsonify, request
import shioaji as sj
from shioaji.data import Ticks 
import json5

(2)撰寫ticks API,
date_temp = request.args.get('tickdate')
這段就是要取得URL後的tickdate參數,
也就是使用者可操控的部分,
再把取回的date_temp塞回ticks API裡date的參數,
date=date_temp
這樣就可以做到使用者輸入時間,API會跟著變動資料。

@app.route('/testdata', methods=['GET'])
def test_tick():
    api = sj.Shioaji(simulation=True)

    api.login(
        person_id="PAPIUSER01", 
        passwd="2222",
        contracts_cb=lambda security_type: print(f"{repr(security_type)} fetch done.")
    )

    date_temp = request.args.get('tickdate')
    
    tick = api.ticks(
    contract=api.Contracts.Stocks["2330"], 
    date=date_temp,
    query_type=sj.constant.TicksQueryType.LastCount,
    last_cnt=5
    )

    return json5.dumps(tick['close'])

示意圖如下
https://ithelp.ithome.com.tw/upload/images/20211001/20107848jjrrbVVOzS.jpg

這樣就是對API進行最基礎的操作了~


上一篇
常用工具介紹(1)-postman、ngrok
下一篇
視覺化當日趨勢圖(1)-client端架設&&工具篇
系列文
視覺化跨平台Client與永豐金融證券APIs30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言