スプラトゥーンのステージ情報を返すAPIです。適当に使って構いませんが、自分用APIなので完全に無保証です。
知識のない利用者の相手をする気もありませんのでわからなければあきらめてください。
ECDHE-RSA+{CHACHA20-POLY1305|AES-GCM}+SHA2
あたり
splapi.fetus.jp
)で参照してください。
Asia/Tokyo
, UTC+9)です。
きちんと扱いたい場合は start_utc
等の UTC 日時を利用するか、start_t
等の UNIX 時間を利用してください。
こちらには時間帯情報が乗っているか、時間帯に影響されないため混乱もなくきちんと扱えるでしょう。
lang=en-US
または lang=en-GB
をつけるとそれぞれの言語に対応した文字列で返されます。
stat_ink=on
をつけると名称部分の応答が変わります(互換性のための機能)。詳しくは下の方を読んでください。
なお、新規利用の際は rule_ex
, maps_ex
のほうが便利です。
GET
メソッドでリクエストしてください。
その他のメソッド(HEAD
含む)は Method Not Allowed
になるかもしれないし普通に応答が返ってくるかもしれません。
User-Agent
を適切に設定してください。
AppName/AppVersion (+http://example.com/)
のような形式がベストです。
たとえば、stat.ink の場合は stat.ink/1.98.1 (+https://github.com/fetus-hina/stat.ink)
などと設定しています。
(Apache-HttpClient/UNAVAILABLE (java 1.4)
というクライアントに大量にアクセスされてもどんな顔をしたらいいのかわからなくなるのは想像できると思います。読むのは人間なのでフォーマット自体は適当でかまいません)
ステージ情報 API のエンドポイントは次の通りになります。
...{AAA|BBB|CCC}...
は「AAA
またはBBB
またはCCC
」の意味です。
絞り込み機能等はありません。
GET https://splapi.fetus.jp/{regular|gachi|fes}
GET https://splapi.fetus.jp/{regular|gachi|fes}/{now|next|next_all}
GET https://splapi.fetus.jp/schedule
【形式1・形式2】選択可能なパラメータの意味は次の通りです。
{regular|gachi|fes}
:
regular
: レギュラーマッチ(ナワバリバトル)のステージ情報を返却します。
gachi
: ガチマッチのステージ情報を返却します。
fes
: フェスマッチのステージ情報を返却します。今後の更新はありません。
{now|next|next_all|schedule}
:
now
: 現在開催しているステージ情報を返却します。
next
: 次に開催されるステージ情報を返却します。
next_all
: next
相当を含む、未来に開催されるステージ情報を返却します。
schedule
: now
+ next_all
相当の、現在から未来にかけて開催されている・開催されるステージ情報を返却します。
【形式3】形式3のインタフェースでは、現在から未来にかけて開催されている・開催されるステージ情報をまとめて返却します。
(regular/schedule
+ gachi/schedule
をまとめて返します。)
ステージ情報APIは次の形式で応答します。 応答は valid な JSON であることのみが規定され、スペースや改行がどのようになるかは不定です。 また、文字列がどのように表現されるかも規定しません。 (実際には可能な限りエスケープを行わない文字列表現を使い、改行等を行わないレスポンスが返されますが、これに依存してはいけません) また、要素の出現順も規定しません。
【形式1・2】:
{
"result": [
{
"rule": "ナワバリバトル",
"rule_ex": {
"statink": "nawabari",
"name_id": "turf_war",
"name_en": "Turf War",
"name":"ナワバリバトル"
},
"maps": [
"タチウオパーキング",
"モンガラキャンプ場"
],
"maps_ex": [
{
"statink": "tachiuo",
"name_id": "moray_towers",
"name_en": "Moray Towers",
"name": "タチウオパーキング"
},
{
"statink": "mongara",
"name_id": "camp_triggerfish",
"name_en": "Camp Triggerfish",
"name": "モンガラキャンプ場"
}
],
"start": "2016-12-15T19:00:00",
"start_utc": "2016-12-15T10:00:00+00:00",
"start_t": 1481796000,
"end": "2016-12-15T23:00:00",
"end_utc": "2016-12-15T14:00:00+00:00",
"end_t": 1481810400
// "team": [ "アオリ", "ホタル" ]
},
// ...
],
"source": {
// ...
}
}
result
: 応答は必ずこの構造体に含まれ、この内容は必ず配列です。
(now
やnext
のような必ず1件しか返さないものでも配列になります)
rule
: ルール名称
rule_ex
: ルールの詳細情報
statink
: stat.ink 定義のルール識別子
name_id
: 英語名ベースの独自識別子
name_en
: 英語版での名称(lang
設定によらず英語)
name
: 現在のロケールでの名称(rule
の内容と同じ)
maps
: ステージ名称の配列
maps_ex
: ステージの詳細情報の配列(rule_ex
を参照してください)
start
, start_utc
, start_t
: このステージの開始日時
end
, end_utc
, end_t
: このステージの終了日時(示している日時の直前まで)
team
: フェスマッチにおいて、各チームの名称
source
: サーバ側の情報を示します。内容は(現在のところ)未定義扱いです。
【形式3】:(省略部分は形式1, 2の例を参照してください)
{
"result": {
"regular": [
{ /* ... (現在のステージ) */ },
{ /* ... (次のステージ) */ },
{ /* ... (その次のステージ) */ }
],
"gachi": [
{ /* ... (現在のステージ) */ },
{ /* ... (次のステージ) */ },
{ /* ... (その次のステージ) */ }
]
},
"source": { /* ... */ }
}
result
: 応答は必ずこの構造体に含まれます。
regular
: レギュラーマッチのステージ情報を配列で表します。(例1, 2の情報を参照してください)
gachi
: ガチマッチのステージ情報を配列で表します。(例1, 2の情報を参照してください)
開始・終了を示す値は、start
, start_utc
, start_t
のように 3 通りの表現で返されます。
(終了の場合は s/start/end/
した項目)
それぞれの示す時間は同じであることが保障されます。 利用者の都合で適当に使い分けてください。
start
, end
:
開始・終了日時を ISO 8601 拡張形式の文字列で表現したものです。
だだし、時間帯情報は省略されます。
実際の時間帯は日本時間(UTC+9, Asia/Tokyo
)で固定されています。
この項目は互換性のために存在します。
新規の利用時は他の形式を利用してください。
start_utc
, end_utc
:
開始・終了日時を ISO 8601 拡張形式の文字列で表現したものです。
時間帯は UTC で、実際に応答値に +00:00
または Z
が付与されます。
各言語/ライブラリの ISO 8601 に対応した日時表現パーサを利用すれば適切に扱えると思います。
start_t
, end_t
:
開始・終了日時を UNIX 時間の数値で表現したものです。
解像度(単位)は秒です。
大抵の言語/ライブラリは UNIX 時間が扱えるでしょうからパースする必要もなく便利かもしれません。
JavaScript/ECMAScript の Date
に与える際は 1,000 倍する必要がある(ミリ秒単位で与える必要がある)ことに注意してください。
stat_ink=on
stat_ink=on
パラメータが指定されているとき、maps
部分が次のように変わります。
"maps": [
{"origin_name":"タチウオパーキング","stat_ink_name":"tachiuo"},
{"origin_name":"モンガラキャンプ場","stat_ink_name":"mongara"}
]
stat_ink_name
に現れるID文字列は下を確認してください。
API 1.5.0 以降、レスポンスには source
構造が含まれます。
内容は見れば大体想像できる内容だと思いますが、 これは主にサーバ管理上の都合で応答に含むもので、利用者による使用は想定していません。
従って、内容の構造体については未定義扱いとしてください。
サイト名やURLも含まれて見えると思いますが、これを表示する義務等はありませんし、
そもそもここに到達可能なURLが記載されるとは限りません。
(外部から到達不可能な、例えば http://127.0.0.1:8080/
等が出力される可能性があります)
ルールの stat.ink 連携用、splapi.fetus.jp 定義の独自識別子一覧です。
これらの識別子をアプリケーションはルールの特定に利用可能です。
(name
ベースで識別するよりはマシなコードが書けると思います)
名称(日本語) | 名称(英語) | stat.ink定義識別子 | 独自定義識別子 |
---|---|---|---|
ナワバリバトル | Turf War |
nawabari
|
turf_war
|
ガチエリア | Splat Zones |
area
|
splat_zones
|
ガチヤグラ | Tower Control |
yagura
|
tower_control
|
ガチホコ | Rainmaker |
hoko
|
rainmaker
|
ステージの stat.ink 連携用、splapi.fetus.jp 定義の独自識別子一覧です。
これらの識別子をアプリケーションはルールの特定に利用可能です。
(name
ベースで識別するよりはマシなコードが書けると思います)
名称(日本語) | 名称(英語) | stat.ink定義識別子 | 独自定義識別子 |
---|---|---|---|
デカライン高架下 | Urchin Underpass |
dekaline
|
urchin_underpass
|
ハコフグ倉庫 | Walleye Warehouse |
hakofugu
|
walleye_warehouse
|
シオノメ油田 | Saltspray Rig |
shionome
|
saltspray_rig
|
アロワナモール | Arowana Mall |
arowana
|
arowana_mall
|
Bバスパーク | Blackbelly Skatepark |
bbass
|
blackbelly_skatepark
|
ホッケふ頭 | Port Mackerel |
hokke
|
port_mackerel
|
モズク農園 | Kelp Dome |
mozuku
|
kelp_dome
|
ネギトロ炭鉱 | Bluefin Depot |
negitoro
|
bluefin_depot
|
タチウオパーキング | Moray Towers |
tachiuo
|
moray_towers
|
モンガラキャンプ場 | Camp Triggerfish |
mongara
|
camp_triggerfish
|
ヒラメが丘団地 | Flounder Heights |
hirame
|
flounder_heights
|
マサバ海峡大橋 | Hammerhead Bridge |
masaba
|
hammerhead_bridge
|
キンメダイ美術館 | Museum d'Alfonsino |
kinmedai
|
museum_d_alfonsino
|
マヒマヒリゾート&スパ | Mahi-Mahi Resort |
mahimahi
|
mahi_mahi_resort
|
ショッツル鉱山 | Piranha Pit |
shottsuru
|
piranha_pit
|
アンチョビットゲームズ | Ancho-V Games |
anchovy
|
ancho_v_games
|
バージョン番号はセマンティックバージョニングっぽくつけます。
1.0.0
: 2016-12-15
1.1.0
: 2016-12-19
start_t
, end_t
を追加1.2.0
: 2016-12-20
rule_ex
, maps_ex
を追加1.3.0
: 2017-02-14
regular
, gachi
に schedule
インタフェースを追加1.4.0
: 2017-02-14
/schedule
インタフェースを追加1.5.0
: 2017-02-28