paiza.IO はオンラインコンパイラーの1つです。
特徴としては、
- 多彩な言語
- 複数ファイルに対応
- Github(Gist)連携
- Twitter から実行
- ブログパーツ
- API
今回は、iutest のテスト環境として使えないかの実験として API を使ってみました。
API 仕様
API の仕様は以下の URL から確認できます。http://api.paiza.io/docs/swagger/#!/runners/
※ 公式トップからのリンクだと https で接続するのですが、それだと正しく表示されないので注意
API は3つ。
create
コードを送って、コンパイル・実行をします。create の返答はセッションIDとステータスになります。
実行結果などを取得するには、取得したセッションIDを使って別の API から取得します。
get_status
実行状況を確認する API です。create で返ってきたセッションIDをパラメータに GET します。GET すると、セッションIDとステータスが返ってきます。
get_detail
ステータスが "completed" になったら、get_detail API で詳細結果を取得します。こちらもセッションIDをパラメータに GET します。
ビルドおよび実行時の標準出力やエラーの内容、実行時間や使用メモリ量などが返ってきます。
API を試してみる
API仕様のページで「Try it out!」のボタンを押すと、APIを実際に試すことができます。http://api.paiza.io/docs/swagger/#!/runners/
まずは、runners/create を開いて source_code に適当なコードを書きます。
他のパラメータはデフォルトのままで OK です。
「Try it out!」ボタンを押すと、下のように結果が表示されます。
次に、runners/get_status を開きます。
id のところに create の返答の id のところにある文字列をコピペします。
「Try it out!」ボタンを押すと、下のように結果が表示されます。
ステータスが completed になったら、runners/get_details を開きます。
get_status と同様に id を入力します。
「Try it out!」ボタンを押すと、下のように結果が表示されます。
簡単ですねぇ^^
iutest を使えるようにしてみる
Wandbox と同様に iutest が実行できるようにしてみました。https://github.com/srz-zumix/iutest/tree/master/tools/paiza.io
で、早速サンプルを実行してみたのですが、
source_code: Too long
ざんねーーん…orz
2万行超のコードでも余裕で実行できる Wandbox の素晴らしさを再確認しました(T^T)
困ったこと
残念な結果に終わりました。とりあえず、ここまでやってみて困ったことをまとめておきます。
- でかいコードが実行できない
実験した結果では、100,000 byte まで実行可能でした。
iutest のソースコードは 720,334 byte あるので余裕でオーバーしてます。。。
- コンパイルオプションが指定できない
- 複数ファイルに対応しているが API からは使えない
まとめ
使ってみた感想としては、API を使って CI 環境の一部として使うのは難しそうだと感じた。(他の言語、環境によっては十分かもしれないが)
ただ、WEB ページからの実行は便利だと思いました。Twitter のツイートでも実行できるし、公式の謳い文句にあるように勉強会のときには使えるのかも。
iutest としては、次は ideone を試してみようと思ってます。
0 件のコメント:
コメントを投稿