GraphSQLのスカラー型は何ですか?


もともと投稿StepZen

導入


あなたはどこでも、あなたがgraphqlに見るスカラー型を見ます.この型定義を次のようにします.
type Tracking {
  origin: String!
  destination: String
  weight_lbs: Int
}
こちらです.String and Int は、2つのGraphSQLの内蔵スカラー型です.その意味と、あなた自身のスカラーをあなたのGraphSQLスキーマに加える方法について話します.

定義


ここではGraphQL.org defines scalar types :

A GraphQL object type has a name and fields, but at some point those fields have to resolve to some concrete data. That's where the scalar types come in: they represent the leaves of the query.


だから、我々はよく知っているGraphQL queries , これらの葉は何ですか.グラフ理論では、グラフによって我々の質問を構成できる.上で定義したクエリのグラフを見てみましょう.

The nodes of the Breed 問い合わせツリーはその葉です.即ち、頂点次数1の節点である.Vertex degrees 頂点の数(この図では、矢印)は頂点に接続されます.これらの葉はスカラー型に分解されます.

グラフのスカラー型


Graphqlは独自のset of scalar types 開始する必要はありません.

  • int :符号付き32ビット整数.

  • float :署名された倍精度浮動小数点値.

  • string : utf - 8文字列.

  • boolean : trueまたはfalse.

  • ID :スカラー型はユニークな識別子を表します.そして、しばしばオブジェクトを再取得するか、キャッシュのためのキーとして使われます.id型は文字列と同じようにシリアル化されます.しかし,idとして定義することは人間が読めることを意図しないことを意味する.
  • しかし、リストにないスカラを使いたいなら、どうでしょうかDateTime , あなたはcreate your own scalar type -- または、ちょうどそれがあなたのニーズに合うならば、Stezenの1つを使ってください.

    Stepzenのスカラー型


    Stezen 'ビルド'Date , DateTime & JSON スカラータイプので、あなた自身(さよなら、広範なリゾルバロジックを実装することなく)を使用することができます!
    したがって、DateTime StezZen GraphSQL APIのスカラーは、スキーマに追加するのと同じくらい簡単です.
    type Tracking {
      origin: String!
      destination: String
      weight_lbs: Int
      dateDelivered: DateTime
    }
    
    以下のような問い合わせを行います.
    query MyQuery {
      deliveryByOrigin(origin: "London") {
        destination
        origin
        weight_lbs
        dateDelivered
      }
    
    データを返しますdateDelivered :
    "data": {
        "deliveryByOrigin": {
          "destination": "Cairo",
          "origin": "London",
          "weight_lbs": 12,
          "dateDelivered": "02-10-2020"
        }
    

    結論


    あなたがGraphSQLおよび/またはStezzenについての詳細を学びたい場合はour blog 深いダイビングのためにlook at our docs .