はじめに
webscript.ioとは、スクリプトを実装するだけで簡単にBackend Serverを作ることができるサービスです。Web APIを持ったBackend Serverを建てる場合、Web Serverの立ち上げが必要になりますが、webscript.ioを用いれば、サーバーをたてることなく実現することが可能です。
サービスには有料版と無料版があり以下のような差分があります。
7日間でEnd Point消えてしまいますが、ハッカソンやプロトタイピングには十分使用できるのではと思います。
エンドポイントの作成
タブで"Script"に移動して、左下の"Create a new script"を押します。そこで適当なsubdomainとパスを指定して下さい。
まずは、以下のような簡単にSuccessを返すScriptを書いて、BrowserでアクセスしてみるとSuccessが返ってくると思います。
Storageを使用する
webscript.ioはtable型にデータを永続化させることが可能です。永続化には"storage"という変数を用います。nameという変数のデータを保存したい場合は、storage.name="XXX"という形で保存が可能です。以下のScriptのサンプルはPOSTのクエリーパラメータで指定した値を、次のGETの呼び出しで取得できるものになります。
POST http://imiyatest.webscript.io/members?name=imiya
GET http://imiyatest.webscript.io/members
imiya
POST/GETでメンバー登録、メンバー情報の取得ができるようにする
以下のようにPOSTメッセージでメンバー登録を行い、その後にGETでメンバーの情報を取得することを目指します。
POST http://imiyatest.webscript.io/members?name=suzuki
HTTP/1.1 200
Content-Length: 29
Content-Type: application/json
Access-Control-Allow-Origin: *
Cache-Control: no-store
{"id": "3", "name": "suzuki"}
GET http://imiyatest.webscript.io/members?id=3
HTTP/1.1 200
Content-Length: 29
Content-Type: application/json
Access-Control-Allow-Origin: *
Cache-Control: no-store
{"id": "3", "name": "suzuki"}
スクリプトは以下のようになります。まずstorageに総数を覚えておき、ユーザが追加される度にインクリメントしてそれをユーザーIDとします。GETではqueryされたidをキーとして、storageからユーザの名前を取得しています。
function addData(name)
storage.count = (storage.count or 0) + 1
storage[storage.count] = name
response = {id=storage.count, name=name}
return response
end
function getData(id)
response = {id=id, name=storage[id]}
return response
end
if request.method == "GET" then
return getData(request.query.id)
elseif request.method == "POST" then
return addData(request.query.name)
else
return "Unknown"
end