Axe DevTools Linterを使った開発の始め方

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Axe DevTools Linter が提供する REST API サービスの開始方法についてのガイド

Free Trial
Not for use with personal data

この記事では、Axe DevTools Linterのオンプレミス版またはAxe DevTools Linter SaaSが提供するREST APIサービスの利用開始方法について説明します。サービスはRESTエンドポイントによって提供されるため、Postman、CocoaRestClient、またはVS Code REST Client拡張機能のようなRESTツールの経験が必要です。また、Pythonのようなプログラミング言語を用いてサービスにアクセスすることもできます。

Axe DevTools Linter の 2 つのエディション(Axe DevTools Linter SaaS とオンプレミスサーバー)の違いは、SaaS 提供では各リンターリクエストに API を使用した認証が必要になる点です(/lint-source エンドポイント)。

tip

Axe DevTools Linter REST サービスが公開するエンドポイントに関する一般的な情報はREST APIリファレンスに記載されています。

最初のステップ

Axe DevTools Linter サーバーの SaaS エディションを使用している場合、最初に API キーを取得する必要があります。キー取得の手順はAxe DevTools Linter SaaS APIキーの取得にあります。

note

Axe DevTools Linter SaaSとの接続を確認したい場合、一部のRESTエンドポイントにはAPIキーなしでアクセスすることができます。このケースについては次のセクションで説明します。

Axe DevTools Linter サーバーのオンプレミス版の場合、設定を行った後(オンプレミスAxe DevTools Linterサーバーのインストールで詳しく説明)、サーバーの IP アドレスを取得する必要があります。また、サーバーがリッスンしているポートが必要です(デフォルトはポート 3000 です)。

curlでの接続テスト

Axe DevTools Linter SaaSのRESTエンドポイントには認証不要のものが2つあり、APIキーを取得する前に接続をテストすることができます。

サーバーにアクセスできるかどうかの簡単なテストをしたい場合、curl(またはウェブブラウザー)を使用できます。次の curl の例は、Axe DevTools Linter SaaS のstatusエンドポイントを使用する方法を示します。

curl https://axe-linter.deque.com/status
note

Axe DevTools Linter SaaS に接続する際、httpの代わりにhttpsを指定する必要があります。

オンプレミス版の場合、次のように入力します:

curl http://<server IP address>:<server port>/status

上記のコマンドでは、<サーバーのIPアドレス><サーバーのポート>を置き換える必要があります。

サーバーが利用可能であれば、以下の応答が返されます:

Ok

同じ URL(例えばhttps://axe-linter.deque.com/status)をウェブブラウザーで訪問することもでき、同じ結果を見ることができます。

以下の例は、healthcheckエンドポイントにアクセスする方法を示しています:

curl https://axe-linter.deque.com/healthcheck

サーバーは次の応答を返すはずです:

{
  "version": "4.4.0"
}

statusエンドポイントと同様に、https://axe-linter.deque.com/healthcheckもウェブブラウザーで訪問して、curl と同じ結果を得ることができます。

アクセシビリティエラーをチェックするために、POSTリクエストを作成する必要があります。curlや Postman のようなツールを使用できます。

Postman または他の REST ツールでは、以下に示すようなヘッダーを作成する必要があります。

POST https://axe-linter.deque.com/lint-source
content-type: application/json
authorization: <YOUR API KEY>

Axe DevTools Linter SaaS を使用している場合、を API キーに置き換える必要があります。オンプレミスサーバーを使用している場合、authorizationヘッダーを使用する必要はありませんが、URL をオンプレミスサーバーの IP とポートアドレスに変更する必要があります。

curlでは、上記のものと同等のヘッダーは以下のようになります:

curl --request POST --url https://axe-linter.deque.com/lint-source \
  --header 'content-type: application/json' \
  --header 'authorization: <YOUR API KEY>'

リクエストが完了する前に、JSON オブジェクトとしてリクエストボディを指定する必要もあります。

{
  "source": "# Heading\n### Another Heading\n",
  "filename": "file.md"
}

完全なcurlコマンドは次のとおりです:

curl --request POST --url https://axe-linter.deque.com/lint-source \
  --header 'content-type: application/json' \
  --header 'authorization: <YOUR API KEY>'
  --data '{ "source": "# Heading\n### Another Heading\n",
    "filename": "file.md" }'

オンプレミスサーバー用では、--url引数を変更し、--header 'authorization: <YOUR API KEY>'行を削除する必要があります。

以下は、上記のリクエストに対する応答の例です。

HTTP/1.1 200 OK
Date: Mon, 14 Mar 2022 14:04:19 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 419
Connection: close
X-Powered-By: Express
Surrogate-Control: no-store
Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate
Pragma: no-cache
Expires: 0
ETag: W/"1a3-cfgZ30xjvW815mLDpbjoGXreu2o"

{
  "report": {
    "errors": [
      {
        "ruleId": "heading-order",
        "helpURL": "https://dequeuniversity.com/rules/axe/4.4/heading-order?application=axe-linter",
        "description": "Ensures the order of headings is semantically correct",
        "lineContent": "### Another heading",
        "lineNumber": 2,
        "linterType": "md",
        "column": 1,
        "endColumn": 20
      }
    ]
  }
}

この例にはアクセシビリティの問題があるため、応答にはreportオブジェクトが含まれており、その中にはerrors配列があり、errorオブジェクトが含まれています。この応答オブジェクトに関する詳細はResponseを参照してください。

Axe DevTools Linter SaaS を使用中に API キーが存在しない場合、次のような応答が返されます。

HTTP/1.1 404 Not Found
Date: Fri, 11 Mar 2022 22:38:51 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 33
Connection: close
X-Powered-By: Express
Surrogate-Control: no-store
Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate
Pragma: no-cache
Expires: 0
ETag: W/"21-HAVNeHb+a8RfOcMl419aKM67S20"

{
  "error": "No API key found"
}

この場合、API キーを再作成するか、Deque ヘルプデスクに連絡して助けを求めることができます。

関連情報