スポンサーリンク
以前pythonを使って簡単にAPIを作る方法を記事にしましたが、今回はそれをもう少し発展させ、レスポンスにヘッダを付け、Content-Typeを指定する方法をメモしておきます。
以前【Python】たった5行でAPIを作れる、そうbottleならね という記事で、pythonのbottleというライブラリを使って簡単にAPIを作る方法を説明しました。その時のコードがこちらです。
# -*- coding:utf-8 -*-
from bottle import route, run, Bottle, request
@route('/hello')
def hello():
return '{"message": "Hello, this is aws"}'
run(host='0.0.0.0', port=8080, debug=True)
しかしこの内容で実際にrestAPIを作った場合、クライアントの種類によってはうまく動作しません。
というのも、この内容ではヘッダが text/html
になってしまうため、jsonとして扱ってくれない場合があるからです。
そこで今回はレスポンスのヘッダを操作してjsonとして認識させるようにするやり方をご説明します。
さっそくですが改良版のコードがこちら。
# -*- coding:utf-8 -*-
from bottle import route, run, Bottle, request, HTTPResponse
import json
@route('/hello')
def hello():
body = '{"message": "Hello, this is aws"}'
r = HTTPResponse(status=200, body=body)
r.set_header('Content-type', 'Application/json')
return r
run(host='0.0.0.0', port=8080, debug=True)
前回のコードではレスポンスに直接文字列を指定していましたが、今回は HTTPResponse
というオブジェクトを指定するようにしています。
そして実際のレスポンスがこちら。
# curl -D - http://localhost:8080/hello
HTTP/1.0 200 OK
Date: Thu, 20 Dec 2018 23:53:32 GMT
Server: WSGIServer/0.1 Python/2.7.14
Content-Length: 33
Content-Type: Application/json
{"message": "Hello, this is aws"}
バッチリです。
以上、bottleを使ったAPIでレスポンスヘッダを指定する方法でした。
スポンサーリンク