API を呼び出す Node.js Web アプリを作成する
適用対象: 従業員テナント 外部テナント (詳細情報)
この記事では、「チュートリアル: Node.js Web アプリでユーザーをサインインさせるように顧客テナントを準備する」で作成したアプリ プロジェクトを、Web API を呼び出すように準備します。 この記事は 4 部構成のガイド シリーズの第 2 部です。
前提条件
- このガイド シリーズの最初のパートである「Node.js Web アプリケーションで API を呼び出すための外部テナントを準備する」の手順を完了します。
プロジェクトのファイルを更新する
fetch.js、todolistController.js、todos.js、todos.hbs、.env といったファイルをさらに作成し、次のプロジェクト構造になるように整理します。
ciam-sign-in-call-api-node-express-web-app/
├── .env
└── server.js
└── app.js
└── authConfig.js
└── fetch.js
└── package.json
└── auth/
└── AuthProvider.js
└── controller/
└── authController.js
└── todolistController.js
└── routes/
└── auth.js
└── index.js
└── todos.js
└── users.js
└── views/
└── layouts.hbs
└── error.hbs
└── id.hbs
└── index.hbs
└── todos.hbs
└── public/stylesheets/
└── style.css
アプリの依存関係をインストールする
ターミナルで、次のコマンドを実行し、axios
、cookie-parser
、body-parser
、method-override
といった Node パッケージをさらにインストールします。
npm install axios cookie-parser body-parser method-override
アプリ UI コンポーネントの更新
コード エディターで views/index.hbs ファイルを開き、[Todolist の表示] リンクを追加します。
<a href="/todos">View your todolist</a>
これで views/index.hbs ファイルは次のファイルのようになります。
<h1>{{title}}</h1> {{#if isAuthenticated }} <p>Hi {{username}}!</p> <a href="/users/id">View your ID token claims</a> <br> <a href="/todos">View your todolist</a> <br> <a href="/auth/signout">Sign out</a> {{else}} <p>Welcome to {{title}}</p> <a href="/auth/signin">Sign in</a> {{/if}}
ciam-ToDoList-api とのやりとりを可能にするリンクが UI に追加されます。 このガイドの後半で、このエンドポイントの高速ルートが定義されます。
コード エディターで
views/todos.hbs
ファイルを開き、次のコードを追加します。<h1>Todolist</h1> <div> <form action="/todos" method="POST"> <input type="text" name="description" class="form-control" placeholder="Enter a task" aria-label="Enter a task" aria-describedby="button-addon"> <button type="submit" id="button-addon">Add</button> </form> </div> <div class="row" style="margin: 10px;"> <ol id="todoListItems" class="list-group"> {{#each todos}} <li class="todoListItem" id="todoListItem"> <span>{{description}}</span> <form action='/todos?_method=DELETE' method='POST'> <span><input type='hidden' name='_id' value='{{id}}'></span> <span><button type='submit'>Remove</button></span> </form> </li> {{/each}} </ol> </div> <a href="/">Go back</a>
このビューを使用すると、ユーザーは API 呼び出しを開始するタスクを実行できます。 たとえば、ユーザーがサインインし、アプリがアクセス トークンを取得した後、ユーザーはフォームを送信することで API アプリにリソース (タスク) を作成できます。
次のステップ
次に、ユーザーをサインインさせ、アクセス トークンを取得する方法について説明します。