公開API

[更新: 2018年01月23日]

「ウェブアクセラレータ」にて利用可能な公開APIについての説明ページです。
curlコマンドなどでAPIのリクエストを送ることで、使用することができます。

はじめに

ご利用方法

さくらのクラウドのコントロールパネルからAPIキーを発行する必要があります。 APIキーの発行はコントロールパネルの APIキー管理 から行えます。

一般注記事項

API URL

https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/

さくらのクラウド API とは異なり、 ウェブアクセラレータのAPIでは常に is1a (石狩第1ゾーン) を指定してください。

認証

ウェブアクセラレータのAPIでは さくらのクラウド API 同様APIキーとシークレットトークンを利用したBasic認証またはDigest認証を使用します。 APIキーとシークレットトークンは、コントロールパネルの APIキー管理 で発行または確認できます。

JSON

リクエストのパラメータとレスポンスのフォーマットにJSONを使用しています。

SSL Only

httpsでのアクセスのみ可能です。

UTF-8

文字コードはUTF-8を使用しています。

日付のフォーマット

DatetimeのフォーマットはISO 8601を使用しています。 以下のような出力になります。

2013-01-14T09:30:00+09:00

レスポンスフォーマットについて

さくらのクラウド API とは異なり、ウェブアクセラレータのAPIでは X-Sakura-API-Beautify リクエストヘッダによるレスポンスの整形には対応しておりません。

注意事項

  • 短期間に集中したアクセスはしないでください。

APIレスポンス

APIは以下に列挙されるHTTPレスポンスコードを返します。各APIでの具体的な意味合いはそれぞれの説明文中に記載しています。

ステータスコード 内容
200 OK 正常に処理され、何らかのレスポンスが返却された。
400 Bad Request リクエストパラメータが不正等。
401 Unauthorized 認証に失敗した。
403 Forbidden リソースへのアクセス権限がない。
例:他の会員のサイトにアクセスしようとした。
404 Not Found リソースが存在しない。
例:000000000001 というサイトは存在しないのに
/site/000000000001/certificate というリソースにアクセスした。
500 Internal Server Error 内部エラーが発生した。
例:DB接続に失敗した。

リクエストパラメータの共通仕様

ウェブアクセラレータのAPIでは さくらのクラウド API のリクエストパラメータの共通仕様には対応しておりません。

サイト一覧取得API

URL /site
Method GET
内容 サイト一覧を取得する。

リクエストの例

GET https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site HTTP/1.1


リクエストボディ

なし

レスポンスボディ

{
  "Total": 2,
  "From": 0,
  "Count": 2,
  "Sites": [
    {
      "Index": 0,
      "ID": "000000000001",
      "Name": "サイト1",
      "DomainType": "own_domain",
      "Domain": "cdn1.example.com",
      "Subdomain": "0f5cty4g.user.webaccel.jp",
      "ASCIIDomain": "cdn1.example.com",
      "Origin": "198.51.100.1",
      "HostHeader": "cdn2.example.com",
      "Status": "enabled",
      "CreatedAt": "2015-11-13T02:56:01+09:00",
      "HasCertificate": true,
      "HasOldCertificate": false,
      "GibSentInLastWeek": 80,
      "CertValidNotBefore": 1457568000000, // 2016-03-10 00:00:00 +0000 UTC の通算ミリ秒
      "CertValidNotAfter": 1526558400000, // 2018-05-17 12:00:00 +0000 UTC の通算ミリ秒
    },
    {
      "Index": 1,
      "ID": "000000000002",
      "Name": "サイト2",
      "DomainType": "subdomain",
      "Domain": "さくら.example.jp",
      "Subdomain": "0uwjbk35.user.webaccel.jp",
      "ASCIIDomain": "xn--y8jl1n.example.jp",
      "Origin": "198.51.100.2",
      "HostHeader": "cdn2.example.com",
      "Status": "disabled",
      "CreatedAt": "2015-11-13T02:57:01+09:00",
      "HasCertificate": true,
      "HasOldCertificate": false,
      "GibSentInLastWeek": 180,
      "CertValidNotBefore": 1457568000000, // 2016-03-10 00:00:00 +0000 UTC の通算ミリ秒
      "CertValidNotAfter": 1526558400000, // 2018-05-17 12:00:00 +0000 UTC の通算ミリ秒
   }
  ],
  "is_ok": true
}

curl(Linux)の例

$ curl --user "Access Token":"Access Token Secret" \
   https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site

証明書と秘密鍵の情報を更新API

URL /site/:siteid/certificate
Method PUT
内容 現世代の証明書と秘密鍵の情報を更新する。
前世代には更新前の現世代の証明書と秘密鍵の情報が設定される。

リクエストの例

PUT https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/000000000001/certificate HTTP/1.1


リクエストボディ

{
  "Certificate": {
    "CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
    "Key": "-----BEGIN RSA PRIVATE KEY-----・・・・・"
  }
}

秘密鍵を変更しない場合は "Key" の項目は省略可能です

レスポンスボディ

{
  "Certificate": {
    "Current":{
      "ID": "1",
      "SiteID": "000000000001",
      "CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
      "Key": "-----BEGIN RSA PRIVATE KEY-----・・・・・",
      "CreatedAt": "2015-11-13T02:57:01+09:00",
      "UpdatedAt": "2015-11-14T02:57:01+09:00"
    },
    "Old": [
      {
        "ID": "1",
        "SiteID": "000000000001",
        "CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
        "CreatedAt": "2015-11-13T02:57:01+09:00",
        "UpdatedAt": "2015-11-14T02:57:01+09:00"
      }
    ]
  }
  "Success": true,
  "is_ok": true
}

curl(Linux)の例

$ curl --user "Access Token":"Access Token Secret" \
   -X PUT -d '{"Certificate": {"Certificate": "-----BEGIN CERTIFICATE-----・・・・・"}}' \
   https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/000000000001/certificate

キャッシュ全件削除API

URL /deleteallcache
Method POST
内容 1つのサイト内の全てのキャッシュを削除する。

リクエストの例

POST https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/deleteallcache HTTP/1.1


リクエストボディ

{
  "Site": {
    "Domain": "example.com"
  }
}


ドメインには公開ドメイン名を指定


レスポンスボディ

{
  "Success": true,
  "is_ok": true
}

curl(Linux)の例

$ curl --user "Access Token":"Access Token Secret" \
   -X POST -d '{"Site": {"Domain": "example.com"}}' \
   https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/deleteallcache

キャッシュ別削除API

URL /deletecache
Method POST
内容 キャッシュを削除する。

リクエストの例

POST https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/deletecache HTTP/1.1


リクエストボディ

{
  "URL": [
    "http://example.com/url1",
    "http://example.com/url2",
    "http://example.com/url3"
  ]
}


URLは最大100個まで指定可能


レスポンスボディ

{
  "Results": [
    { "URL": "http://example.com/url1", "Status": 200, "Result": "OK" },
    { "URL": "http://example.com/url2", "Status": 404, "Result": "Not Found" },
    { "URL": "http://example.com/url3", "Status": 403, "Result": "Forbidden" },
    { "URL": "http://example.com/url4", "Status": 500, "Result": "Internal Server Error" }
 ],
  "Success": true,
  "is_ok": true
}

curl(Linux)の例

$ curl --user "Access Token":"Access Token Secret" \
   -X POST -d '{"URL": ["http://www.example.com/wp-content/uploads/2016/7/example.jpg"]}' \
   https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/deletecache