//GraphQLのスキーマ例
type User {
id: ID!
name: String!
orders: [Order]
}
type Order {
id: ID!
total: Float!
}
type Query {
user(id: ID!): User
users: [User]
order(userId: ID!, orderId: ID!): Order
}
/GraphQLクエリの例
{
user(id: "123") {
name
orders {
id
total
}
}
}
//このクエリを使うと、特定のユーザー(ID 123)の名前とそのユーザーに関連するすべてのオーダーのIDと合計金額を1つのリクエストで取得できます。
user/:id/:idのRESTful APIバックエンド設計
URLパターンの改良 /user/:userId/orders/:orderId 例: /user/123/orders/456は、ユーザーID 123のオーダーID 456を取得することを意味します。
ーーーーーーーーー
GraphQLでは、リソースをURLで表現するのではなく、クエリ言語を使って必要なデータをクライアントが指定する方式です。1つのエンドポイント(通常は/graphql)に対してクエリを送るだけで、複数のリソースにアクセスできます。