複数ファイルの扱いについて
kaniccは複数ファイルのアップロード・コンパイルをサポートしています。複数ファイルモードでは、入出力のcodeやbinaryはBase64文字列の配列になります。また、URL中のIDは、複数のIDを_で連結した文字列になります。詳細は各エンドポイントを参照してください。
コンパイラのバージョンを取得
[
{
"version": "3.3.0"
}
]コードをアップロード
{
"code": "<base64 encoded Ruby Code>"
}Status 200
{
"status": "ok",
"id": "387972832krgr-3jekfjn4t-rkjgnjnedwdgr"
}{
"code": [
"<base64 encoded Ruby Code>",
"<base64 encoded Ruby Code>",
"<base64 encoded Ruby Code>"
]
}Status 200
{
"status": "ok",
"id": "eeec7e5e-d4f9-492d-b83f-b1f8d4c8b9e7_2d8a56d2-23ef-4811-bc9f-ebdc339da72a_3c02a426-85b3-48f6-8087-f4836b6d801f"
}idはそれぞれのファイルに対応するIDを_で連結した文字列です。
コードが存在するかのチェック
Status 200
{
"code": "<base64 encoded Ruby Code>"
}URLの:idの部分に複数のファイルIDを_で結合した文字列を指定します。
- 例:
/code/2d8a56d2-23ef-4811-bc9f-ebdc339da72a_3c02a426-85b3-48f6-8087-f4836b6d801f
Status 200
{
"code": ["<base64 encoded Ruby Code>"]
}コードをコンパイル
{
"version": "3.3.0"
}200 OK
コンパイル成功時
{
"status": "ok",
"binary": "<base64 encoded mruby/c binary>"
}200 OK
コンパイル失敗時
{
"status": "error",
"error": "<error message>"
}例:
{
"status": "error",
"error": "input:4:0: syntax error, unexpected end of file, expecting \"'end'\"\n"
}400 Bad Request
500 Internal Error
他の原因で失敗した場合:
{
"status": "failed to compile",
"id": ""
}URLの:idの部分に複数のファイルIDを_で結合した文字列を指定します。
- 例:
/code/2d8a56d2-23ef-4811-bc9f-ebdc339da72a_3c02a426-85b3-48f6-8087-f4836b6d801f/compile
{
"version": "3.3.0"
}200 OK
コンパイル成功時
{
"status": "ok",
"binary": ["<base64 encoded mruby/c binary>"]
}
{ // "invalid id" or "unknown compiler version" "status": "<error code>" // 常に空 "id": "", }