API 要求の書式
このトピックの内容: |
Curl を例に、API 要求の書式を以下に示します。
curl --data "action=<action>&user=<username>&project=<project>&<parameters>[<oken=<auth_token>]" http(s)://<server>:<port>/review/api
フィールド
- <action> はサポートされているアクションの 1 つです。詳細については、API リファレンスページを参照してください (http://<klocwork_server_host>:<klocwork_server_port>/review/api)
- <username> はユーザー名です (すべての要求に必要)
- <project> は Klocwork サーバーのプロジェクトの名前です
- <parameters> はアクションのオプションです。詳細については、以下の例を参照してください。 検索アクションの「クエリ」パラメーターで使用可能なキーワードのリストは、Validate での検索を参照してください。
- <auth_token> は ltoken の認証トークンです。詳細は、次の認証のセクションを参照してください。
コンテンツのタイプが正しく設定されていれば、API では国際化が完全にサポートされます。curl の add-header command-line オプションを使用して文字セットを UTF-8 に設定します。例:
curl --data "action=search&user=myself&query=アクション&project=a" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" http://localhost:8080/review/api
認証
Klocwork サーバーに関連するその他の操作と同様に、API 要求には認証が必要になります。
- アクセス制御の方法が定義されていない場合、必要事項はユーザー名だけで、どのようなユーザー名でもかまいません。
- 一方、アクセス制御を使用している場合は、ユーザー名と認証トークンを入力する必要があります。指定されたサーバーで、JSON 形式の認証トークンと、トークン発行先のユーザーを印刷するには、kwauth --print-auth-info を使用します。
認証トークンは kwauth と Klocwork クライアントアプリケーションによって、ユーザーのホームディレクトリ内の特別なファイルに保存されています。ltoken という名前のこのファイルは次の場所にあります。
- Windows: C:\Users\<user_name>\.klocwork\ltoken
- Unix:~/.klocwork/ltoken
'KLOCWORK_LTOKEN' 環境変数を設定することによりカスタムの ltoken ファイルの場所を使うことができます。詳細は、ltoken を使って認証を行うを参照してください。
.klocwork ディレクトリに ltoken ファイルがない場合は、kwauth
を実行してこのファイルを生成してください。
ltoken ファイルには 1 つまたは複数のテキスト行が含まれ、それぞれにセミコロンで区切られた 4 つの情報が含まれています。
<server>;<port>;<user_name>;<token>
4 番目の情報を API 要求の認証トークンとして使用してください。たとえば、デフォルトポート 8080 で server1 にアクセスするユーザー bsmith の ltoken ファイルは、次のようになります。
server1;8080;bsmith;8244b24fbc50aa75e6f7c882d190616d577914501802ead4009a3e501df79350
結果として生じる curl 要求は次のようになります。
curl --data "action=projects&user=bsmith<oken=8244b24fbc50aa75e6f7c882d190616d577914501802ead4009a3e501df79350" http://server1:8080/review/api
API にアクセスするスクリプトは、ltoken ファイルを読み取り、適切な認証トークンを抽出して、その API 要求に付加する必要があります。API アプリケーションは ltoken ファイルに書き込んではなりません。代わりに、kwauth を使用して ltoken ファイルにデータを自動入力します。