LeenoAPIは、取得できるリソースに応じた以下のエンドポイントを持ちます。
- 単一キャンバス http://leeno.jp/api/canvas
- 複数キャンバス http://leeno.jp/api/canvases
- 単一ヒストリ http://leeno.jp/api/history
- 複数ヒストリ http://leeno.jp/api/histories
- 文字コードはUTF-8です。
- すべてのリクエストに対してJSON形式で結果を返します。
- 結果のJSONはresult, status, messageのフィールドを持ちます。
field | content |
---|---|
result | 結果データがJSON形式で入ります。リクエストにエラーがあった場合、空文字列になります。 |
status | "ok"もしくは"error"いずれかの文字列を返します。 |
message | リクエストが正常に完了した場合、空文字列になります。エラーがあった場合はエラーメッセージが格納されます。 |
HTTPステータスコードは200(正常), 404(データがない), 500(サーバーエラー)のいずれかとなります。エラーの詳細については末尾の"例外処理"を参照して下さい。
エンドポイント: http://leeno.jp/api/canvas
- canvas_id
- canvas_idを指定しない場合、最新のCanvasが返ります。
- "canvas_id": Canvasのid
- "title": Canvasのタイトル
- "name": 投稿者
- "tags": Canvasに付けられたタグの配列
- "width": 画像の幅
- "height": 画像の高さ
- "total_history": Canvasが持つHistoryの総数
- "total_favorite": Canvasに付けられたfavoriteの総数
- "create_date": Cavnasが作成された日時。例: "2012-03-15T02:16:01Z"
- "update_date": Cavnasの最終更新日時。 例: "2012-03-15T02:16:16Z"
canvas_idを指定することで単一のCanvas情報を取得します。canvas_idとは、
http://leeno.jp/c/1ch-18
というURLの場合 1ch
の部分を指します。
$ curl "http://leeno.jp/api/canvas?canvas_id=m0"
{"result":{"canvas_id":"m0",
"title":"\u30bf\u30a4\u30c8\u30eb\u7121\u3057",
"name":"\u540d\u7121\u3057\u3055\u3093",
"tags":["Tag", "hogehoge"],
"width":600,
"height":400,
"total_history":2,
"total_favorite":0,
"create_date":"2012-03-15T02:16:01Z",
"update_date":"2012-03-15T02:16:16Z"},
"status":"ok",
"message":""}
canvas_idを指定しない場合、最新のCanvasが返ります。
$ curl "http://leeno.jp/api/canvas"
{"result":{"canvas_id":"m0",
"title":"\u30bf\u30a4\u30c8\u30eb\u7121\u3057",
"name":"\u540d\u7121\u3057\u3055\u3093",
"tags":["hoge", "\u305f\u3050\u3093"],
"width":600,
"height":400,
"total_history":2,
"total_favorite":0,
"create_date":"2012-03-15T11:16:01+09:00",
"update_date":"2012-03-15T11:16:16+09:00"},
"status":"ok",
"message":""}
エンドポイント: http://leeno.jp/api/canvases
以下のクエリでCanvasを絞り込み、複数のCanvasを取得します。
- prof: ユーザのプロフィール画像Canvasを検索対象とするフラグ。trueにした場合プロフィール画像のみを検索する。 (true or false. default: false)
- look_up_time: 作成日と更新日のどちらで検索するか。from, to, between, orderに影響する。 (created_at or updated_at. default: created_at)
- from: 日時文字列。例: "2012-03-21", "2012-03-21T10:30:00"
- to: 日時文字列。書式はfromと同じ。
- between: 現在からどれだけの期間をさかのぼって検索するかを指定する。1日以内、1週間以内、1ヶ月以内が選択できる。 (daily, weekly or monthly. default: 指定なし)
- order: ソート順を指定する。新しい順、古い順、Redraw数順の3通りが選択できる。 (new, old or redraw. default: new)
- limit: 取得する結果の数を制限する。(default: 30)
- offset: 獲得する結果のオフセット値(最初のN件を飛ばす)を指定する。(default: 0)
- パラメータなしでリクエストを行った場合、最新30個のキャンバスが返ります。
- クエリにcanvas_idを指定したとき、単一キャンバスAPIへのリクエストと同じ結果を返します。
ひとつのCanvasが持つフィールドは、単一キャンバスAPIと同じです。ヒットした数だけ配列としてresultに格納されます。
$ curl "http://leeno.jp/api/canvases?between=monthly&order=redraw"
{"result":[{"canvas_id":"m0",
"title":"\u30bf\u30a4\u30c8\u30eb\u7121\u3057",
"name":"\u540d\u7121\u3057\u3055\u3093",
"tags":["hoge", "\u305f\u3050\u3093"],
"width":600,
"height":400,
"total_history":2,
"total_favorite":0,
"create_date":"2012-03-15T02:16:01Z",
"update_date":"2012-03-15T02:16:16Z"},
{"canvas_id":"lz",
"title":"taitotuuuuuuuuuuuuuuuuuuuu",
"name":"Hash",
"tags":["Tag"],
"width":600,
"height":400,
"total_history":1,
"total_favorite":0,
"create_date":"2012-03-03T08:12:45Z",
"update_date":"2012-03-03T08:12:46Z"}],
"status":"ok",
"message":""}
上記の例では2つのCanvasがヒットしています。
エンドポイント: http://leeno.jp/api/history
LeenoではひとつのCanvasが複数のredraw履歴を持っており、それぞれのredraw履歴をHistoryと呼びます。別の言い方をすると、ひとつのHistoryは1枚の絵に対応し、HistoryはいずれかのCanvasに所属します。図示すると以下のようになります。
したがって、単一のHistoryを取得するには、canvas_idとhistory_idの双方を指定することが必要です。history_idとは、
http://leeno.jp/c/1ch-18
というURLの場合 18
の部分を指します。
- canvas_id(必須)
- history_id(必須)
- パラメータにcanvas_idとhistory_idの両方が含まれていない場合、エラーとなります。
- "history_id": 数値。
- "parent_id": Historyのredraw元。nullの場合は一番最初のHistory.
- "canvas_id": Historyが所属するCanvasのid.
- "image_large": オリジナルサイズの画像URL
- "image_small": 小さいサイズの画像URL(125x125)
- "image_thumb": サムネイルサイズの画像URL(60x60)
- "create_date": Historyの作成日時。 例: "2012-03-15T02:16:01Z",
- "update_date": Historyの最終更新日時。 例: "2012-03-15T02:16:01Z"
$ curl "http://leeno.jp/api/history?canvas_id=m0&history_id=1"
{"result":{"history_id":1,
"parent_id":null,
"canvas_id":"m0",
"image_large":"http://leeno.jp/c/m0-1/image.png",
"image_small":"http://leeno.jp/c/m0-1/thumb.png",
"image_thumb":"http://leeno.jp/c/m0-1/small_thumb.png",
"create_date":"2012-03-15T11:16:01+09:00",
"update_date":"2012-03-15T11:16:01+09:00"},
"status":"ok",
"message":""}
エンドポイント: http://leeno.jp/api/histories
あるCanvasに紐尽くHistoryを返します。
- canvas_id(必須)
$ curl "http://leeno.jp/api/histories?canvas_id=m0"
{"result":[{"history_id":1,
"parent_id":null,
"canvas_id":"m0",
"image_large":"http://leeno.jp/c/m0-1/image.png",
"image_small":"http://leeno.jp/c/m0-1/thumb.png",
"image_thumb":"http://leeno.jp/c/m0-1/small_thumb.png",
"create_date":"2012-03-15T11:16:01+09:00",
"update_date":"2012-03-15T11:16:01+09:00"},
{"history_id":2,
"parent_id":1,
"canvas_id":"m0",
"image_large":"http://leeno.jp/c/m0-2/image.png",
"image_small":"http://leeno.jp/c/m0-2/thumb.png",
"image_thumb":"http://leeno.jp/c/m0-2/small_thumb.png",
"create_date":"2012-03-15T11:16:16+09:00",
"update_date":"2012-03-15T11:16:17+09:00"}],
"status":"ok",
"message":""}
{"result":"","status":"error","message":"The requested URL is Invalid"}
- エンドポイントと引数を確認して下さい。
{"result":"","status":"error","message":"Data Not Found"}
- リクエストしたcanvas_id, history_idなどが存在することを確認して下さい。
{"result":"","status":"error","message":"Internal Server Error"}
- メンテナンス中の可能性があります。時間をおいて再度お試し下さい。
- エラーが続く場合、問い合わせフォーム からお問い合わせ下さい。