API 要求の書式

このトピックの内容:

Curl を例に、API 要求の書式を以下に示します。

curl --data "action=<action>&user=<username>&project=<project>&<parameters>[&ltoken=<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&ltoken=8244b24fbc50aa75e6f7c882d190616d577914501802ead4009a3e501df79350" http://server1:8080/review/api 

API にアクセスするスクリプトは、ltoken ファイルを読み取り、適切な認証トークンを抽出して、その API 要求に付加する必要があります。API アプリケーションは ltoken ファイルに書き込んではなりません。代わりに、kwauth を使用して ltoken ファイルにデータを自動入力します。