私が使用したアプリケーション構築しています:GraphQL IDをクライアント上の文字列として扱うべきですか?
- MySQLをバックエンドデータベースとして
- アポロGraphQLサーバーを
- Sequelize
私はGraphQLスキーマを構築しているので、GraphQL IDデータ型を使ってレコードを一意に識別しています。
type Person {
id: ID!
firstName: String
middleName: String
lastName: String
createdAt: String
updatedAt: String
}
Sequelizeコネクタ
export const Person = sequelize.define('person', {
firstName: { type: Sequelize.STRING },
middleName: { type: Sequelize.STRING },
lastName: { type: Sequelize.STRING },
});
GraphQLリゾルバ:
Query: {
person(_, args) {
return Person.findById(args.id);
}
ここでは例のスキーマとそのMySQLのリゾルバ/コネクタ
Graphqlタイプです
すべてが動作するようにします。ここに私の質問です。 GraphQLは文字列としてID
を扱うようです。 ID値はSequelizeによってMySQLデータベースにINT
として格納されます。私はGraphQLを使用して、データベース内のID値と一致する文字列または整数でMySQLデータベースを照会することができます。ただし、GraphQLは常にID値を文字列として返します。
クライアントでこの値をどのように処理する必要がありますか?私はそれをGraphQLから取得するとすぐに整数に変換する必要がありますか? ID値を文字列として格納するためにsequelizeコードを変更する必要がありますか?このようなGraphQL IDを使用する際に進める正しい方法はありますか?
に答える上記の答えを願っています。ありがとう。 GraphQLは、データ構造に対するオープンエンドのアプローチを提供し、**正しい**方法を理解するのは難しいかもしれません。 –