Tooling APIとは開発者向けに用意されたAPIです。ApexCodeの情報を取得したりできます。開発者向けドキュメントを見てみるとこんな感じで使いますとサンプルコードが記載されています。
ひとまず実際に動かしてみないとわからないこともあるのでコピペで動くサンプルコードを用意しました。
Apexクラスで動かすためのコードですが、開発者コンソールからも動かすことが可能です。こんな感じでコードを貼り付けて実行します。
デバッグログで正常に実行されたことを確認できると思います。
重要なところとして次の2行の処理でセッションIDを渡し、戻り値をJSON形式に指定しています。
req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId()); req.setHeader('Content-Type', 'application/json');
セッションIDを渡さないと次のように認証エラーが発生してしまいます。
また、サンプルにはhttp://na1.salesforce.com/
というように記載されていますが、インスタンス部分は組織によって変更されます。本番環境とSandbox環境でも違いがあるので直接指定するのは望ましくありません。
次のようにすることでインスタンス部分を動的に取得できます。
URL.getSalesforceBaseUrl().toExternalForm()
最後にTooling APIを実行する場合は、リモートサイトの設定が必要になります。通常のページとVisualforceページのインスタンスは微妙に違うのでそれぞれの設定をしておくと安全だと思います。
この設定を忘れると実行時に次のようなエラーが発生します。
ひとまずこれでTooling APIを動かしてみることができると思います。後は開発者向けドキュメントを見ながらどんなことができるのか確認していくといろいろ試せると思います。
追記
Post処理の実行例