Axe DevTools Linterを使った開発の始め方
Axe DevTools Linter が提供する REST API サービスの開始方法についてのガイド
この記事では、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 エンドポイント)。
Axe DevTools Linter REST サービスが公開するエンドポイントに関する一般的な情報はREST APIリファレンスに記載されています。
最初のステップ
Axe DevTools Linter サーバーの SaaS エディションを使用している場合、最初に API キーを取得する必要があります。キー取得の手順はAxe DevTools Linter SaaS APIキーの取得にあります。
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/statusAxe 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 を使用している場合、
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 ヘルプデスクに連絡して助けを求めることができます。
関連情報
- Axe DevTools Linter SaaS を使用するために必要な API キーを取得するステップはGetting an API Keyを参照してください。
- Axe DevTools Linter サーバーが提供する API のリファレンスや、linter-sourceエンドポイントの追加オプションについてはAxe DevTools Linter Server REST API Referenceを参照してください。
- Axe DevTools Linter REST API Example Usageには、Axe DevTools Linter サーバーで使用できるcurl の例およびPython の例が含まれています。
