SaaSストアで駅すぱあとWebサービスを購入する

[ヴァル研究所 Advent Calendar 2018](https://qiita.com/advent-calendar/2018/val) 3日目の記事です。
今日は[Amazon SaaSストア](http://www.amazon.co.jp/saas/)で[駅すぱあとWebサービス](http://docs.ekispert.com/v1/)が購入できるよという話と、簡単な利用例を紹介します。

## SaaSストアで駅すぱあとWebサービスを購入する

[駅すぱあとWebサービス](http://docs.ekispert.com/v1/)の利用にあたりアクセスキー(APIキー)が必要になりますが、個人でアクセスキーの発行を申し込もうとすると費用等がネックになることがあります。[無償版](http://docs.ekispert.com/v1/le/)での利用も可能ですが、使用できるAPIの種類が限られているのでバリバリ使おうとする場合は物足りなく感じることもあります。

[Amazon SaaSストア](http://www.amazon.co.jp/saas/)での[駅すぱあとWebサービス](http://docs.ekispert.com/v1/)はそういった個人ユーザや中小企業での利用・試用を想定したプランとなっています。

 * [2018年05月29日 Amazon SaaSストアで経路検索API「駅すぱあとWebサービス」を販売開始](https://www.val.co.jp/topics/2018/0529.html)

[SaaSストア](http://www.amazon.co.jp/saas/)で購入できる[駅すぱあとWebサービス](http://docs.ekispert.com/v1/)は、個人ユーザにも利用できる手ごろな価格でサービスを提供しており、リクエスト数(APIの呼び出し回数)毎に料金ラインナップが用意されています。

 * [5,000リクエスト(5,400円)](https://www.amazon.co.jp/dp/B07D44JYG1)
 * [10,000リクエスト(10,800円)](https://www.amazon.co.jp/dp/B07D45HR25)
 * [20,000リクエスト(21,600円)](https://www.amazon.co.jp/dp/B07D45461J)

購入方法については[利用開始ガイド(PDF)](https://images-na.ssl-images-amazon.com/images/G/09/software/pdf/userstartguide_ekispertweb_20181108.pdf)をご参照ください。

## 利用可能なWebAPIの種類

ダイヤデータ等を含むWebAPIは除かれていますが、無償版よりも多くの機能が利用できるようになっています。

 * [範囲探索](http://docs.ekispert.com/v1/api/search/multipleRange.html)
 * [範囲探索(旧版)](http://docs.ekispert.com/v1/api/search/range.html)
 * [平均待ち時間探索](http://docs.ekispert.com/v1/api/search/course/plain.html)
 * [駅情報](http://docs.ekispert.com/v1/api/station.html)
 * [駅簡易情報](http://docs.ekispert.com/v1/api/station/light.html)
 * [緯度経度からの周辺駅検索](http://docs.ekispert.com/v1/api/geo/station.html)
 * [住所情報からの周辺駅検索](http://docs.ekispert.com/v1/api/address/station.html)
 * [通過駅情報](http://docs.ekispert.com/v1/api/course/passStation.html)
 * [駅付加情報](http://docs.ekispert.com/v1/api/station/info.html)
 * [運行路線情報](http://docs.ekispert.com/v1/api/operationLine.html)
 * [会社情報](http://docs.ekispert.com/v1/api/corporation.html)
 * [地点生成](http://docs.ekispert.com/v1/api/toolbox/course/point.html)
 * [測地系変換](http://docs.ekispert.com/v1/api/toolbox/geo/convert.html)
 * [定期券の払い戻し計算](http://docs.ekispert.com/v1/api/course/repayment.html)
 * [定期代の分割計算](http://docs.ekispert.com/v1/api/course/teiki/divided.html)
 * [運賃の分割計算](http://docs.ekispert.com/v1/api/course/fare/divided.html)
 * [探索結果の運賃切り替え](http://docs.ekispert.com/v1/api/course/recalculate.html)
 * [航空路線時刻表](http://docs.ekispert.com/v1/api/plane/timetable.html)
 * [航海路線時刻表](http://docs.ekispert.com/v1/api/ship/timetable.html)
 * [回数券一覧](http://docs.ekispert.com/v1/api/coupon/list.html)
 * [回数券詳細](http://docs.ekispert.com/v1/api/coupon/detail.html)
 * [路線図一覧](http://docs.ekispert.com/v1/api/railmap/list.html)
 * [路線図画像](http://docs.ekispert.com/v1/api/railmap/data.html)
 * [路線図駅情報](http://docs.ekispert.com/v1/api/railmap/detail.html)
 * [データバージョン](http://docs.ekispert.com/v1/api/dataversion.html)

## さっそく使ってみる

[駅すぱあとWebサービス](http://docs.ekispert.com/v1/)のアクセスキーを購入したら、さっそくWebAPIが呼び出せるか試してみましょう。
[利用開始ガイド(PDF)](https://images-na.ssl-images-amazon.com/images/G/09/software/pdf/userstartguide_ekispertweb_20181108.pdf)にもありますが、[データバージョン](http://docs.ekispert.com/v1/api/dataversion.html)APIを呼び出せるかどうかで確認するのが早道です。

```sh 
http://api.ekispert.jp/v1/xml/dataversion?key=アクセスキーを入力してください
```

URLやアクセスキーの指定に問題がなければ、以下のようなレスポンスが取得できます。

```xml 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResultSet apiVersion="1.27.0.0" engineVersion="201812_01a">
  <Version create="20181201" createType="Edition" caption="知識ベース"/>
  <Version create="20181201" createType="Edition" caption="鉄道時刻表"/>
  <Version create="20181201" createType="Date" createComment="Now" caption="ＪＲ"/>
  <Version create="20181119" createType="Date" createComment="Now" caption="私鉄"/>
  <Version rangeTo="20190107" rangeFrom="20181001" create="20181202" createType="Edition" rangeCaption="有効期間" caption="航空時 刻表"/>
  <Version create="20181202" createType="Edition" caption="高速・連絡・深夜急行バス"/>
  <Version create="20181201" createType="Edition" caption="船"/>
  <Version create="20181101" createType="Date" createComment="Now" caption="得トクきっぷデータ"/>
  <Version create="20180801" createType="HideDay" createComment="Now" caption="住所データ"/>
  <Copyrights companyId="2" company="株式会社交通新聞社">交承 平成25年68号
ＪＲデータの内容は、株式会社交通新聞社発行の「ＪＲ時刻表」2018年12月号に基づいています。
この時刻データを無断で転載・複写し、又は紙媒体、電磁媒体その他いかなる媒体に加工することも禁じます。

ＪＲバスデータの内容は、株式会社交通新聞社作成のデータ平成30年11月分に基づいています。この時刻データを無断転載・複写や電磁媒体等に加工することを禁じます。

名鉄バスの情報は、名鉄バス株式会社作成のデータに基づいています。ただし一部のバス停ポール情報は株式会社ヴァル研究所が自らの責任により加工したものです。

ほか、一部の内容は株式会社ヴァル研究所が自らの責任により加工したものです。
</Copyrights>
</ResultSet>
```

## 簡単なサンプルを動かしてみる

[データバージョン](http://docs.ekispert.com/v1/api/dataversion.html)APIでレスポンスが取得できることを確認したら、次は簡単なサンプルを動かしてみましょう。

サンプルコードはGitHubに置いてあります。

 * [ValLaboratory/advcal](https://github.com/ValLaboratory/advcal)

DockerとDocker Composeで環境を構築していますので、上記のリポジトリをcloneしたのち、以下の手順でDockerイメージをビルドします。

```sh 
$ # GitHubからcloneして作業ディレクトリに移動する。
$ git clone https://github.com/ValLaboratory/advcal.git
$ cd advcal/2018/docker_env
$
$ # Dockerイメージをビルドする。
$ docker-compose build hello_ews
```

ビルドが完了したら、コンテナを起動します。

```sh 
$ docker-compose up hello_ews
```

HTML/JavaScriptはコンテナ側からローカルのディレクトリを参照しています。JavaScriptファイル( ` advcal/2018/docker_env/public_html/hello_ews/app.js` )の以下の箇所を、[駅すぱあとWebサービス](http://docs.ekispert.com/v1/)のアクセスキーで置き換えます。

```js 
APP = (function() {
    var ACCESS_KEY = 'ここにアクセスキーを入力';
```

以下のURLにアクセスすると、簡単なサンプルアプリを表示できます。

 * http://localhost:8080

<img width="331" alt="img.png" src="https://qiita-image-store.s3.amazonaws.com/0/152217/3706eeb6-d029-2a4e-f345-ec78d07b2b09.png">

今回のサンプルでは[駅付加情報](http://docs.ekispert.com/v1/api/station/info.html)APIを呼び出しています。駅コード `22828` (東京駅)の福祉施設情報が取得できています。
(駅コードについては、[以前の記事](https://qiita.com/valsitoh/items/ebd0d279a13fd21cbfec)をご参照ください)

## まとめ

[SaaSストア](http://www.amazon.co.jp/saas/)で[駅すぱあとWebサービス](http://docs.ekispert.com/v1/)が購入可能になった話と、簡単なサンプルを動かしてみる例を紹介しました。

[SaaSストア](http://www.amazon.co.jp/saas/)で提供されるプランでは、利用できるAPIが[無償版](http://docs.ekispert.com/v1/le/)よりも多いので、より[駅すぱあとWebサービス](http://docs.ekispert.com/v1/)の機能を活用できるかと思います。
また、今回のサンプルはごく簡単なものでしたが、利用できるAPIが増えると[駅すぱあとWebサービス HTML5インターフェースサンプル](https://github.com/EkispertWebService/GUI/)を活用したくなってきます。

明日の記事では、この[駅すぱあとWebサービス HTML5インターフェースサンプル](https://github.com/EkispertWebService/GUI/)を用いた開発環境の準備方法を紹介できればと思います。