PythonとBottleでWeb API作成
ちょっとしたWeb APIを作る必要があった。
Web APIといえば、node.jsで簡単に作れそうだけど、
慣れ親しんだPythonならもっと簡単にできてしまう。
PythonとBottleを使って作ってみる。
Bottleのインストール
Bottleはpipでインストールしても良いし、単純にダウンロードしてAPIと同じディレクトリに置くだけでも動作する。
実装
from bottle import run, route, request, response
import json
@route('/echo/<msg1>/<msg2>')
def echo(msg1, msg2):
# CORS
if 'Origin' in request.headers:
origin = request.headers['Origin']
response.headers['Access-Control-Allow-Origin'] = origin
response.headers['Access-Control-Allow-Methods'] = (
'PUT, GET, POST, DELETE, OPTIONS')
response.headers['Access-Control-Allow-Headers'] = (
'Origin, Accept, Content-Type, X-Requested-With'
', X-CSRF-Token, Authorization')
# ECHO
return json.dumps({
'msg1': msg1,
'msg2': msg2,
})
run(host='localhost', port=8080)
とりあえず、ブラウザからアセスしてみる
http://localhost:8080/echo/test11/test22
画面にJSONらしきテキストが表示された。
javascriptでfetchしてみる
fetch('http://localhost:8080/echo/js11/js22', {
method: 'GET',
mode: 'cors',
cache: 'no-cache'
}).then(function(res) {
res.json().then(function(data) {
console.log(data);
});
});
chromeで実行したところ、開発者コンソールにJSONが出力された。
まとめ
Pythonで簡単にWeb APIが作れた。
とりあえず、サーバに応答して欲しくて作ったが、クライアントがjavascriptなので、そのうちサーバー側もnode.jsで作って言語を統一しよう。
同じタグの記事
- BOM付きUTF-8からBOMを除去するpython
- jythonのヒープメモリ設定
- Kotlin1.2.50がリリースされていた
- macOSをHigh Sierraに更新した。スクリプト実行環境のバージョンは変わったのか
- macOSをMojaveに更新した。スクリプト実行環境のバージョンは変わったか
- pathlib.Pathを調べる
- pyenvでpython環境をインストール
- pyenvとvirtualenvでpython環境を構築
- python unpack
- python3で数値のlistを文字列のlistに変換
同じカテゴリの記事
コメントを残す