PythonとBottomでWeb API作成

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で作って言語を統一しよう。

同じタグの記事
同じカテゴリの記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA