APIエンドポイントのレファレンス

SlidePackのHTTP APIエンドポイントのレファレンスです。

認証

SlidePack HTTP APIはどのエンドポイントも認証が必要です。

リクエストヘッダにAPIトークンを含むことで認証します。

認証付きリクエストの例

curl "https://slidepack.io/sessions" \
  -H "Authorization: Bearer {API_TOKEN}"

APIトークンは ダッシュボード で作成してください。


POST/sessions

セッションを作成する

セッションを作成し、ファイルアップロードに必要なAWS S3 Pre-Signed POSTパラメータを返します。

レスポンス

リクエスト

POST
/sessions
curl -X POST "https://slidepack.io/sessions" \
      -H 'Authorization: Bearer {API_TOKEN}'

レスポンス

201
Created
{
  "session": {
    "uuid": "f0155f9f-d3f3-4fa9-9f8d-70f8fd2f9c36",
    "created_at": "2020-08-13T13:14:32.000000Z",
    "rendered_at": null,
    "render_succeeded": null,
    "render_slide_count": null,
    "render_message": null
  },
  "upload": {
    "action": "https://slidepack-api.s3.ap-northeast-1.amazonaws.com",
    "method": "POST",
    "enctype": "multipart/form-data",
    "params": {
      "acl": "private",
      "key": "sessions/zip/f0155f9f-d3f3-4fa9-9f8d-70f8fd2f9c36.zip",
      "Content-Type": "application/zip",
      "X-Amz-Security-Token": "***",
      "X-Amz-Credential": "***",
      "X-Amz-Algorithm": "AWS4-HMAC-SHA256",
      "X-Amz-Date": "20200813T131432Z",
      "Policy": "***",
      "X-Amz-Signature": "***"
    }
  }
}

GET/sessions

セッションを一覧する

セッションの一覧を取得します。

レスポンス

リクエスト

GET
/sessions
curl "https://slidepack.io/sessions" \
    -H 'Authorization: Bearer {API_TOKEN}'

レスポンス

200
OK
{
  "sessions": [
    {
      "uuid": "805bcdc8-4782-4673-9d69-47f7ed0696c8",
      "created_at": "2020-08-13T15:10:15.000000Z",
      "rendered_at": "2020-08-13T15:10:20.000000Z",
      "render_succeeded": true,
    },
    {
      "uuid": "f0155f9f-d3f3-4fa9-9f8d-70f8fd2f9c36",
      "created_at": "2020-08-13T13:14:32.000000Z",
      "rendered_at": null,
      "render_succeeded": null,
    }
  ]
}

GET/sessions/{uuid}

セッションを取得する

一つのセッションの情報を取得します。

レスポンス

リクエスト

GET
/sessions/{uuid}
curl "https://slidepack.io/sessions/{uuid}" \
    -H 'Authorization: Bearer {API_TOKEN}'

レスポンス

200
OK
{
  "session": {
    "uuid": "f0155f9f-d3f3-4fa9-9f8d-70f8fd2f9c36",
    "created_at": "2020-08-13T13:14:32.000000Z",
    "rendered_at": null,
    "render_succeeded": null,
    "render_slide_count": null,
    "render_message": null
  },
  "upload": {
    "action": "https://slidepack-api.s3.ap-northeast-1.amazonaws.com",
    "method": "POST",
    "enctype": "multipart/form-data",
    "params": {
      "acl": "private",
      "key": "sessions/zip/f0155f9f-d3f3-4fa9-9f8d-70f8fd2f9c36.zip",
      "Content-Type": "application/zip",
      "X-Amz-Security-Token": "***",
      "X-Amz-Credential": "***",
      "X-Amz-Algorithm": "AWS4-HMAC-SHA256",
      "X-Amz-Date": "20200813T131432Z",
      "Policy": "***",
      "X-Amz-Signature": "***"
    }
  }
}

POST可変URL

ファイルをアップロードする

セッションの入力zipファイルをアップロードします。 Pre-signed parametersを使って、Amazon S3の専用プライベートバケットに直接アップロードを行います。

入力zipファイルの最小構成は次のとおりです。

  • template.pptx - テンプレートとなるパワーポイントファイル
  • data.json - テンプレートに流し込むデータ

その他、画像や動画ファイルを同梱できます。zipファイル名は何でも構いません。

次のように multipart/form-data リクエストを構築します。

  • URLPOST /sessionsで得られたupload.action
  • フィールド名および値にはPOST /sessions で得られたupload.paramsの全てのキーと値を含む
  • fileフィールドを末尾に追加し、アップロードしたいファイルを示す

レスポンス

204 No Content

リクエスト

POST
可変URL
curl -X POST "{URL}" \
  -F "{KEY}={VALUE}" \
  -F "{KEY}={VALUE}" \
     ...
  -F "file=@{ZIP_FILE_PATH}"

レスポンス

204
No Content

POST/sessions/{uuid}/render

レンダリングを実行する

セッションをレンダリングしてpptxファイルを生成し、ダウンロード用のURLを返します。

{uuid} はセッションUUIDで置き換えてください。

予め入力zipファイルをアップロードしておく必要があります。

レスポンス

  • 名前
    session
    object
    必須か
    いいえ
    説明
    Sessionオブジェクト
  • 名前
    download_url
    string
    必須か
    いいえ
    説明
    レンダリング済みpptxファイルのダウンロードURL

リクエスト

POST
/sessions/{uuid}/render
curl -X POST "https://slidepack.io/sessions/{uuid}/render" \
     -H 'Authorization: Bearer {API_TOKEN}'

レスポンス

200
OK
{
  "session": {
    "uuid": "f0155f9f-d3f3-4fa9-9f8d-70f8fd2f9c36",
    "created_at": "2020-08-13T13:14:32.000000Z",
    "rendered_at": "2020-08-13T13:16:18.000000Z",
    "render_succeeded": true,
    "render_slide_count": 5,
    "render_message": null
  },
  "download_url": "https://slidepack-api.s3.ap-northeast-1.amazonaws.com/..."
}

POST/sessions/{uuid}/download_url

ダウンロードURLを再発行する

レンダリング済みpptxファイルのダウンロードURLを再発行します。

{uuid} はセッションUUIDで置き換えてください。

予めレンダリングを実行しておく必要があります。

レスポンス

  • 名前
    session
    object
    必須か
    いいえ
    説明
    Sessionオブジェクト
  • 名前
    download_url
    string
    必須か
    いいえ
    説明
    レンダリング済みpptxファイルのダウンロードURL

リクエスト

POST
/sessions/{uuid}/download_url
curl -X POST "https://slidepack.io/sessions/{uuid}/render" \
     -H 'Authorization: Bearer {API_TOKEN}'

レスポンス

200
OK
{
  "session": {
    "uuid": "f0155f9f-d3f3-4fa9-9f8d-70f8fd2f9c36",
    "created_at": "2020-08-13T13:14:32.000000Z",
    "rendered_at": "2020-08-13T13:16:18.000000Z",
    "render_succeeded": true,
    "render_slide_count": 5,
    "render_message": null
  },
  "download_url": "https://slidepack-api.s3.ap-northeast-1.amazonaws.com/..."
}

Sessionオブジェクト

  • 名前
    uuid
    string
    必須か
    いいえ
    説明
    セッションのユニークID
  • 名前
    created_at
    string
    必須か
    いいえ
    説明
    作成日時
  • 名前
    rendered_at
    string or null
    必須か
    いいえ
    説明
    レンダリング日時。
    未レンダリングの場合はnull
  • 名前
    render_succeeded
    boolean or null
    必須か
    いいえ
    説明
    レンダリングが成功した場合はtrue、失敗した場合はfalse
    未レンダリングの場合はnull
  • 名前
    render_slide_count
    integer or null
    必須か
    いいえ
    説明
    レンダリング成功時の実績スライド枚数。
    未レンダリングの場合はnull
  • 名前
    render_message
    string or null
    必須か
    いいえ
    説明
    レンダリング失敗時のエラーメッセージ。
    未レンダリングの場合、およびレンダリングが成功した場合はnull

Sessionオブジェクト

{
  "uuid": "f0155f9f-d3f3-4fa9-9f8d-70f8fd2f9c36",
  "created_at": "2020-08-13T13:14:32.000000Z",
  "rendered_at": "2020-08-13T14:16:20.000000Z",
  "render_succeeded": true,
  "render_slide_count": 5,
  "render_message": null
}