Skip to content

How to use Web API

Hidetsugu Takahashi edited this page Mar 24, 2017 · 1 revision

このサービスは基本的にWebAPIを叩いて、帰ってきたJSONデータをフロントエンドでJavaScriptなどで整形するアプローチを取る(予定)

なので、APIの叩き方を一応ここに書いておく。 正直言ってしまうと、使い方はSetsunaを起動して`GET`で`http://<ドメイン名>/api/`を叩くか、ソースコード内の`readme.rst`に書いてあることと一緒。

なお、このドキュメント自体が仕様書でもある。

以降、`api/`の後ろは省いて書く。

取得

今生きてる投稿全てを取得

メソッド

GET

アドレス

api/posts

最新の任意の投稿を取得

メソッド

GET

アドレス

api/posts/save/<integer>

例(最新の10件を取得する)

api/posts/save/10

投稿日時を制限して投稿を取得

メソッド

GET

アドレス

api/posts/start/<datetime_s>/end/<datetime_e>

例(日本時間の2015年3月12日から2015年3月14日までの投稿を取得する。)

api/posts/start/20150312T000000+0900/end/20150314T000000+0900

補足

時間フォーマットはISO 8601に準ずる。

言語を制限して取得する

メソッド

GET

アドレス

api/<language>/posts/

例(日本語の投稿を取得する)

api/jpn/posts/

補足

言語コードはISO 639-3に準ずる。

言語を制限して最新の任意の件数を取得する

メソッド

GET

アドレス

api/<lang>/posts/<integer>

例(日本語の最新10件を取得する)

api/jpn/posts/save/10

言語と投稿日時を制限して取得

メソッド

GET

アドレス

api/<lang>/posts/start/<datetime_s>/end/<datetime_e>

例(日本時間の2015年3月12日から2015年3月14日の日本語の投稿を取得)

api/jpn/posts/start/20150312T000000+0900/end/20150314T000000+0900

あるIDの投稿を取得する。

メソッド

GET

アドレス

api/post/<id>

補足

ID番号はMongoDBのIDと同一。

投稿

以下の形式でJSONを作成し、api/postPOST メソッドで送る。

{
    "content": "投稿内容",
    "password": "削除したい時のパスワード。半角英数字",
    "lang": "ISO 639-3 の言語コード"
}

成功すると、以下のようなJSONが返ってくる。

{
    "id": 投稿のID,
    "content": 投稿内容,
    "limit": 投稿が削除される時間(Unix Time),
    "password": 投稿を削除するためのパスワード,
    "lang": ISO 639-3の言語コード。
}

補足

  • `password`は特に指定していない場合、4桁のランダムな半角英数字の文字列が生成される。

  • lang`は特に指定していない場合、`und が指定される。

レスポンス(コメントなし)

特定の投稿のアドレス(api/post/<id>)にPOSTメソッドを送信。以下のJSONが返される。

{
    "id": レスポンスしたID,
    "content": レスポンスした投稿の内容,
    "limit": 削除される時間(Unix Time),
    "lang": ISO 639-3の言語コード,
    "link": [リンクされている投稿]
}

返信

以下の形式でJSONを作成し、api/post/<id>POST メソッドで送る。

{
    "content": "投稿内容",
    "password": "削除したい時のパスワード。半角英数字",
    "lang": "ISO 639-3 の言語コード"
}

成功すると以下のようなJSONが返ってくる。

{
    "id": 返信投稿のID,
    "content": 返信投稿内容,
    "limit": 削除される時間(Unix Time),
    "password": 手動削除用のパスワード
    "lang": 返信投稿のISO 639-3の言語コード,
    "link": {"id": 返信先のID, "content": 返信先の投稿内容, "limit": 返信先の削除される時間(Unix Time)}
}

削除

以下のJSONを作成し、任意の投稿(api/post/<id>)にDELETEメソッドでアクセスする。

{
    "password": 投稿時に設定したパスワード
}

成功すると以下のJSONが返ってくる。

{
    "message": "Your post deleted ;)"
}

おすすめツール

curlでも十分だろうけれども、httpieが個人的におすすめ。