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
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 (またはwebブラウザ)を使用できます。以下のcurl例では、 status エンドポイントの使い方を示しています:

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

Axe DevTools Linter SaaSに接続するときは、 https ではなく http を指定する必要があります。

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

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

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

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

Ok

同じURL(例えば、 https://axe-linter.deque.com/status)をwebブラウザで訪れることも可能で、同じ結果が得られるはずです。

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

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

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

{
  "version": "4.4.0"
}

他のエンドポイントと同様に、 status エンドポイントでは、 https://axe-linter.deque.com/healthcheck をwebブラウザで訪れて、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 ヘルプデスク に問い合わせてください。

関連情報