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进行最基础的操作了~


<<:  #17 Automation (5)

>>:  谈谈TDD

查看fbx文件的version

用文本的方式打开文件,就可以看到版本了: FBXHeaderExtension: { FBXHead...

【D2】要下厨前需要准备锅具

简介厨房:Shioaji Shioaji是永丰证开发出来的Python API,用来给客户自行开发自...

Day28 Let's ODOO: ODOO.sh

Odoo.sh是Odoo提供的付费平台,只要有DB与程序码就会帮你建立Server,也因为是由Odo...

【Day7】使用Django 产生 excel报表

之前因为可能因为需要使用收集的资料作分析,所以做了一个使用 Django来生成excel档案的功能,...

[Day22] 在 GCP 的 VM 上安装 MySQL

MySQL or MariaDB CentOS 的 rpm 套件管理器预设没有 MySQL repo...