アプリの API をセットアップするために AWS GraphQL CLI ガイドに従っていますが、接続に問題があります。
以下は、一部の属性が削除された、現在の Graphql スキーマです。
type Employee @model {
id: ID!
employment: [Employment!] @connection(name: "byEmployeeIDByCompanyID", fields: ["id"])
}
type Company @model {
id: ID!
employees: [Employment!] @connection(name: "byCompanyIDByDateHired", fields: ["id"])
}
type Employment @model
@key(name: "byEmployeeIDByCompanyID", fields: ["employeeID", "companyID"], queryField: "employmentByEmployeeIDByCompanyID") {
id: ID!
companyID: ID!
employeeID: ID!
company: Company! @connection(fields: ["companyID"])
employee: Employee! @connection(fields: ["employeeID"])
}
Employees または Companys をクエリすると、[Employment] は常に空の配列を返します。これらのフィールドのリゾルバーを編集する必要がありますか? それらは箱から出してすぐに動作するはずですよね?
私の理解では、「名前」と複数の「フィールド」で @key を使用すると、テーブルにセカンダリ インデックスが作成され、@connection でそのキーを指定すると、テーブルのプライマリ インデックスの代わりにそのキーを使用するよう接続に指示されます。たとえば、「byEmployeeIDByCompanyID」キーでは、employeeID がパーティション キーで、companyID がソート キーです。"employmentByEmployeeIDByCompanyID" queryField で employeeID を指定して companyID を指定しないクエリを実行すると、特定の従業員のすべての雇用が返されます。