【さくらのクラウドAPI】Basic認証でREST API叩いてみた(サーバー一覧取得)


概要

curlのサンプルでサーバー一覧を取得できたけど、他の言語で使うためのBasic認証でアクセスするサンプルをまとめました。
例としてサーバー一覧を取得してみます。

さくらのクラウドAPIはBasic認証、Digest認証

ちゃんと読んでおらずこの内容を見つけるのに時間がかかりました(はじめにのところにちゃんと書いてありました)

つまり、公式にも記載しているcurlサンプルと同じようにBasic認証で他言語でも対応すればいいわけです。

curlサンプル
curl --user "Access Token":"Access Token Secret" \
    https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/server/

REST APIをBasic認証でアクセス

Basic認証でアクセスするにはアクセストークンアクセストークンシークレット:コロンでつないでBase64にエンコードしてAuthorizationヘッダーに付与すればアクセスできるみたいです。

Base64エンコードの例

Access TokenとAccess Token Secretを:コロンでつないでBase64エンコードします。
今回は株式会社エン・PCサービスさんのbase64エンコード/デコードツール
を使って変換してます。

Access Token:Access Token Secret

↓ Base64でエンコード

QWNjZXNzIFRva2VuOkFjY2VzcyBUb2tlbiBTZWNyZXQ=

↓ AuthorizationヘッダーにBasicの文字列とエンコードしたやつを付与

Authorization:Basic QWNjZXNzIFRva2VuOkFjY2VzcyBUb2tlbiBTZWNyZXQ=

Advanced REST Clientの場合はこうなりますね。

Base64の変換は【Base64 変換ツール】とかでググれば出てくると思います。

どの言語でもだいたいBase64エンコードの機能はあるはずなので、スマホアプリでもWebでも同じようにアクセスできます。

実行結果

Advanced REST Clientで実行してみると無事にサーバー一覧を取得できました。

まとめ

他の言語で対応するときも同じようにBase64に変換したものをAuthorizationヘッダーに付与してあげればアクセスできそうですね。