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に変換
同じカテゴリの記事