最近はWeb APIのフォーマットとしてJSONを使うことが増えてきました。そして、Web APIを使っていると単純にJSONをホスティングしてくれるだけで十分といったケースも多いかと思います。 そこで使ってみたいのがKintoです。ごくシンプルなJSONストレージサーバです。

Kintoの使い方

KintoはDockerコンテナを提供しています。簡単にサーバを立てられます。

docker run -p 8888:8888 kinto/kinto-server

サーバが立ったら、後はJSONをHTTP経由でポストするだけです。Basic認証を追加することもできます。

$ echo '{"data": {"description": "Write a tutorial explaining Kinto", "status": "todo"}}' | \
>     http POST https://kinto.dev.mozaws.net/v1/buckets/default/collections/tasks/records \
>          -v --auth 'user:password'
POST /v1/buckets/default/collections/tasks/records HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
Authorization: Basic dXNlcjpwYXNzd29yZA==
Connection: keep-alive
Content-Length: 81
Content-Type: application/json
Host: kinto.dev.mozaws.net
User-Agent: HTTPie/0.9.2

{
    "data": {
        "description": "Write a tutorial explaining Kinto", 
        "status": "todo"
    }
}

HTTP/1.1 201 Created
Access-Control-Expose-Headers: Retry-After, Content-Length, Alert, Backoff
Connection: keep-alive
Content-Length: 253
Content-Type: application/json; charset=UTF-8
Date: Sun, 20 Dec 2015 04:59:24 GMT
Server: nginx

{
    "data": {
        "description": "Write a tutorial explaining Kinto", 
        "id": "57b1f5ba-ab37-41d3-966b-2cbf1d7e48f1", 
        "last_modified": 1450587563732, 
        "status": "todo"
    }, 
    "permissions": {
        "write": [
            "basicauth:10ea4e5fbf849196a4fe8a9c250b737dd5ef17abbeb8f99692d62828465a9823"
        ]
    }
}

JSONデータに対する更新、削除権限も指定することができます。さらに他のデバイスとの同期であったり、シェアする仕組みも用意されています。

KintoはPython製のオープンソース・ソフトウェア(Apache License 2.0)です。

Kinto/kinto