GraphQLの型
GraphQL Schemaを構成する最小単位
型の宣言方法はライブラリ等によって異なるが、基本はSDLを使う
.graphqlという拡張子のファイルに書いたりするやつ
Schemas and Types | GraphQL
6種類の型
Scalar型
String
Int
Float
Boolean
ID
[Type]やType!は修飾子であって型ではない
Object型 (graphql)
Interface型 (graphql)
Union型 (graphql)
Enum型 (graphql)
Input Object型 (graphql)
SDLのキモいところ
Object型 (graphql)はtypeで定義する
objectというキーワードはない
他の型では「Enum型」は「enum」で定義するので一貫性がないmrsekut.icon
#wip
Scalar型
Selection setのleafになるやつ
Int
Float
JSON上ではnumberになる
String
Boolean
ID
互いに固有の値になる
JSON上ではstringになる
Enum
文字列のunion型のようなもの
code:.graphql
enum PhotoCategory {
SELFIE
PORTRAIT
ACTION
LANDSCAPE
GRAPHIC
}
カスタムスカラー型
これで独自のDateTime型を定義する
code:.graphql
scalar DateTime
field持たないんだmrsekut.icon
numberなのかstringなのかわからないじゃん #??
別途validationを書けるっぽい
普通に使える
code:.graphql
type Photo {
id: ID!
created: DateTime!
}
リスト
e.g. [String]
!の位置がややこしい
table:ややこい
GraphQL Schema TypeScript記法で表現するなら
[Int] null | (int|null)[]
[Int!] null | int[]
[Int]! (int|null)[]
[Int!]! int[] ←基本これをつかうはず
一番使うやつが一番書くのダルいというデザインmrsekut.icon