このリファレンス アプリケーションは、低レベルの Algolia 検索ライブラリを使用しています。同様のアプリケーションを構築している場合は、公式の Angular InstaSearch ライブラリを使用してください。
このプロジェクトをマシンにダウンロード (クローン) するには、 git
インストールされている必要があります。システムに Git をインストールする方法について詳しくは、こちらをご覧ください。
インストールしたら、ターミナル シェルを開き、次のコマンドを使用してこのリポジトリのクローンを作成します。
> git clone https://github.com/manekinekko/angular-search-experience.git
このプロジェクトの依存関係をインストールするには、 npm install
必要です。次に、ターミナルを使用して、以前にこのプロジェクトを複製したフォルダーにディレクトリを変更する必要があります。デフォルトでは (上記のコマンドラインをコピーした場合)、これはangular-search-experience
になります。
> cd angular-search-experience
> npm install
私たちはクラウド機能を保護することにしました (これは良い習慣です)。したがって、 search
API をリクエストするには、リクエストにAuthorization
ヘッダーを追加する必要があります。必要なヘッダーAuthorization: SearchToken this-is-a-fake-token
次のとおりです。以下の cURL コマンドの例を参照してください。
サーバーを起動する前に、 /functions
フォルダー内の .env ファイル内にいくつかの環境変数を追加する必要があります。この env テンプレート ファイルを例として使用し (gitignored である .env に名前を変更します)、次のように設定できます。
YOUR_ALGOLIA_APPLICATION_ID
YOUR_ALGOLIA_API_KEY
アプリケーション ID と API キーは、https://www.algolia.com/apps の「API キー」セクションで確認できます。 API キーを取得するにはアカウントを作成する必要があります。
ローカル マシンでサーバーを試すには、次のコマンドを実行します: npm run start:backend
このオプションを使用するには、firebase アカウントにログインし、このプロジェクト (firebase 上) にアクセスできる必要があります。 firebase プロジェクトにアクセスできるのは管理者だけです。
バックエンドの別のバージョンは、Cloud Functions for Firebase を使用して実装されたサーバーレス アーキテクチャに依存しています。
このプロジェクトには、ローカル依存関係としてfirebase-tools
が付属しています。このツールは、Firebase プロジェクトを生成、実行、デプロイできる Firebase コマンド ライン インターフェイス (CLI) ツールのセットです。通常、この依存関係はグローバルにインストールされることに注意してください。
また、Firebase ランタイムは Node.js の古いバージョンv6.11.5
を使用しています。 /functions
の下に.nvmrc
フォルダーを追加しました。この特別なファイルは、特定のフォルダー内の必要なバージョンの Node.js に簡単に切り替えるためにNVM
によって使用される構成ファイルです。 NVM
まだインストールしていない場合は、インストール ガイドをお読みください。
NVM
使用して必要な Node.js バージョンをインストールし、それを使用します ( /functions
フォルダー内のみ)。
> nvm install 6.11.5
> nvm use
Node.js v6.11.5
使用しているので、 search
Cloud Function をローカルで実行 (エミュレート) する準備が整いました。そのためには、 npm run start:backend:firebase
実行します。このコマンドは次の 2 つのことを行います。
/functions
フォルダー (プロジェクトのルートにあります) に変更します。このフォルダーにはすべてのバックエンド コードが含まれています。http://localhost:5000/angular-search-experience/us-central1/search
でsearch
クラウド関数をローカルに提供します。重要:
search
関数は、エンティティの追加と削除を可能にするPOST
およびDELETE
HTTP メソッドのみを実装しているため、Cloud Function をリクエストできるようにするには、cURL
やPostman
などの HTTP クライアントが必要であることに注意してください。
プロジェクトのルートでnpm start
実行して、フロントエンド開発サーバーを起動します。 http://localhost:4200/
に移動します。ソース ファイルを変更すると、アプリは自動的にリロードされます。
フロントエンド アプリケーションは、Angular CLI バージョン 6.1.2 で生成されました。
npm run build
実行してプロジェクトをビルドします。ビルド アーティファクトはdist/angular-search-experience/
ディレクトリに保存されます。運用ビルドにはnpm run build:prod
スクリプトを使用します。
Firebase ホスティングを使用してフロントエンド アプリケーションを公開します。新しいバージョンをデプロイする前に、次のコマンドを使用して実稼働パッケージをビルドする必要があります。
> npm run build
次に、新しいビルドを Firebase にデプロイできます。
> npm run deploy
重要: Firebase へのデプロイには、(Firebase プロジェクトへの) アクセス権限が必要です。
本番エンドポイント (クラウド機能) は以下で利用できます。
本番環境の Cloud Function をリクエストするには、次の cURL コマンドを使用できます。
> curl -H "Authorization: SearchToken this-is-a-fake-token" -H "Content-Type: application/json" -X POST -d '{}' https://example.com/api/1/apps
{"createdAt":"2018-04-19T13:17:10.343Z","taskID":29343382,"objectID":"10788302"}
注:
application
オブジェクトは意図的に検証しません。
> curl -H "Authorization: SearchToken this-is-a-fake-token" -X DELETE https://example.com/api/1/apps/10788302
{"deletedAt":"2018-04-19T13:30:42.190Z","taskID":29353102,"objectID":"10788302"}
<app-search></app-search>
<app-search-input></app-search-input>
<app-category></app-category>
<app-search-result></app-search-result>
<mat-nav-list></mat-nav-list>
[appRating]
freePriceLabel
API ドキュメントの詳細については、こちらをご覧ください: https://manekinekko.github.io/angular-search- experience/index.html
このアプリケーションにはチャットボットが含まれています。音声を使用してアプリケーションを検索するのに役立ちます。天気予報アプリの検索やゲームの検索を手伝ってもらうだけです。
ボットを有効にするには、マイクとスピーカーをオンにする必要があります。アプリケーションのロゴ (ヘッダー) を 6 回クリックするだけです。
注: このボットの実装は実験的 (そして楽しみのため!) であり、多数のユーザーの発話に対してトレーニングされていません。
yarn install v1.5.1
[1/4] ? Resolving packages...
[2/4] ? Fetching packages...
error [email protected]: The engine "node" is incompatible with this module. Expected version "~8.0".
error An unexpected error occurred: "Found incompatible module".
info If you think this is a bug, please open a bug report with the information provided in "/Users/vvo/Dev/Algolia/angular-search-experience/functions/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
回避策:
/functions
フォルダー内でnvm use 8.0
実行します。npm install
実行します。cd ..
を実行してから、 npm run start:backend
実行します。