Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.
Gen1 DocsLegacy

Page updated Mar 26, 2026

アプリコードをAPIに接続する

このガイドでは、Amplify ライブラリを使用してアプリケーションコードをバックエンド API に接続します。開始する前に、以下が必要です:

  • クラウドサンドボックスと Amplify Data リソースが実行中(npx ampx sandbox
  • Amplify ライブラリがインストールされたフロントエンドアプリケーション
  • npm がインストール済み

Amplify ライブラリを設定する

バックエンド(npx ampx sandbox)を繰り返し実行すると、amplify_outputs.json ファイルが生成されます。このファイルには API のエンドポイント情報と認証設定が含まれています。以下のコードをアプリのエントリーポイントに追加して、Amplify クライアントライブラリを初期化および設定します:

認可モードを設定する

認可モードは、リクエストをバックエンドでどのように認可するかを決定します。デフォルトでは、Amplify Data は「userPool」認可を使用して、署名されたユーザー認証情報で API リクエストに署名します。データモデルに allow.publicApiKey() 認可ルールを使用している場合は、認可モードとして「apiKey」を使用する必要があります。認可ルールをカスタマイズを確認して、どのタイプのリクエストでどの認可モードを選択するかについて詳しく学んでください。デフォルト認可モードは、デプロイメント成功時に生成される amplify_outputs.json の一部として提供されます。

リクエストレベルで認可モードを設定する

各個別 API リクエストで認可モードを指定することもできます。これは、アプリケーションが通常は 1 つの認可モードを使用し、少数の例外がある場合に便利です。

let result = try await Amplify.API.query(
request: .list(
Todo.self,
authMode: .apiKey))
let result = try await Amplify.API.query(
request: .list(
Todo.self,
authMode: .amazonCognitoUserPools))
let result = try await Amplify.API.query(
request: .list(
Todo.self,
authMode: .awsIAM))
let result = try await Amplify.API.query(
request: .list(
Todo.self,
authMode: .openIDConnect))

AWS Lambda 関数を使用して、独自のカスタム API 認可ロジックを実装できます。認可ルールをカスタマイズを確認して、AWS Lambda で認可プロトコルを実装する方法について詳しく学んでください。

let result = try await Amplify.API.query(
request: .list(
Todo.self,
authMode: .function))

カスタムリクエストヘッダーを設定する

Amplify Data エンドポイントを使用する場合、認可目的またはフロントエンドからバックエンド API へのメタデータを渡すためにリクエストヘッダーを設定する必要があるかもしれません。

カスタムヘッダーを送信リクエストに含めるには、AWSAPIPluginURLRequestInterceptor を追加します。

import Amplify
import AWSAPIPlugin
struct CustomInterceptor: URLRequestInterceptor {
func intercept(_ request: URLRequest) throws -> URLRequest {
var request = request
request.setValue("headerValue", forHTTPHeaderField: "headerKey")
return request
}
}
let apiPlugin = AWSAPIPlugin(modelRegistration: AmplifyModels())
try apiPlugin.add(interceptor: CustomInterceptor(), for: AWSAPIPlugin.defaultGraphQLAPI)
try Amplify.add(plugin: apiPlugin)
try Amplify.configure(with: .amplifyOutputs)