def process_single_line(line):
tokens = tokenize(line)
calc_split_priority(tokens)
return dict(
tokens=concat_tokens(tokens, " "),
split=[concat_tokens(ts) for ts in split(tokens)])
GET
python
@app.route('/api/', methods=['GET'])
def api():
text = request.args["q"]
ret = regroup_split.process_single_line(text)
return ret
/api/?q=...でGETに渡して動作確認
自動でJSONでシリアライズされる
POST
python
@app.route('/api/', methods=['GET', 'POST'])
def api():
if request.method == "GET":
text = request.args["q"]
else:
text = request.json["q"]
ret = regroup_split.process_single_line(text)
return ret
$curl -X POST -H "Content-Type: application/json" -d '{"q":"test"}' localhost:5000/api/
動作確認
git pushしてheroku上でも動くことを確認する
このAPIを呼び出すクライアントサイドを作る
python
import requests
import json
API_URL = "https://regroup-split-server.herokuapp.com/api/"
sample_text = "あー、そうか、付箋をたくさん作ってKJ法をするプロセスに慣れてない人は、そもそもの付箋を作るところでどの程度の情報の粒度にしたらいいかがピンとこないのか。そこのところをソフトウェアが支援することが必要だな"
payload = {"q": sample_text}
r = requests.post(API_URL, json=payload)
assert r.ok
for s in r.json()["split"]:
print(s)
"""
Expected output:
付箋をたくさん作る
KJ法をするプロセスに慣れてない人
付箋を作るところでどの程度の情報の粒度
いいかがピンとこない
ソフトウェアが支援することが必要
"""