Closed9

graphql

hayaohayao
  • スキーマ
    • ≒型?
    • クライアントとサーバの間の契約

スキーマの例

type Query {
  allPersons(last: Int): [Person!]!
  allPosts(last: Int): [Post!]!
}

type Mutation {
  createPerson(name: String!, age: Int!): Person!
  updatePerson(id: ID!, name: String!, age: String!): Person!
  deletePerson(id: ID!): Person!
}

type Subscription {
  newPerson: Person!
}

type Person {
  id: ID!
  name: String!
  age: Int!
  posts: [Post!]!
}

type Post {
  title: String!
  author: Person!
}
  • クエリ言語
  • 実行アルゴリズム
    • フィールドをトラバースしresolverを実行する

https://www.apollographql.com/blog/graphql/basics/graphql-explained/

hayaohayao

Query

どんなデータが必要かを表現したもの

Mutations

  • データの作成
  • データの更新
  • データの削除

Subscriptions

サーバーとのリアルタイムコミュニケーション

hayaohayao

Schemaのフロントエンドとバックエンドの共有ってどうやるの?

hayaohayao

type ~は

  • Query
  • Mutations
  • Subscriptions

が特殊で
あとは構造体的なイメージ?

hayaohayao

サーバの動作

  1. Queryを受け取る
  2. 妥当性チャック
  3. 関数を実行して、結果を得る
hayaohayao

field1つ1つのresolver呼び出しにDBアクセスがもし発生したらかなり非効率。
ORMと合わせて使うことが多い?
いや、あるレコードが欲しかったら、あるレコード取ってきて、そのメンバーのresolverは取ってきたレコードにアクセスすれば問題ないか

このスクラップは2022/11/11にクローズされました