19 Temmuz 2021 Pazartesi

GraphQL Schema

Giriş
Açıklaması şöyle. Schema tanımlama için kullanılan dile Schema Definition Language (SDL) deniliyor.
GraphQL has its own type system. This system is used to define the schema of an API. Basically, the syntax for writing schemas is known as Schema Definition Language or SDL.
Nesneler type Foo şeklinde tanımlanıyor. Alanların sonunda ! işareti varsa bu alan mecburidir anlamına geliyor. Yani es geçilemez. Açıklaması şöyle
The ! mark signifies that these are mandatory fields.

Örnek - String
Şöyle yaparız
type Query {
  shows(titleFilter: String): [Show]
}

type Show {
  title: String
  releaseYear: Int
}
Örnek - Int
Şöyle yaparız
type Employee {
  id: String!
  name: String!
  phone: String!
  age: Int!
}
Örnek - tehlikeli kod
Şu kod tehlikeli
type Query {
  album(id: ID!): Album
}
type Album {
  photos(first: Int): [Photo]
}
type Photo {
  album: Album
}

query maliciousQuery {
  album(id: ”some-id”) {
    photos(first: 9999) {
      album {
        photos(first: 9999) {
          album {
            photos(first: 9999) {
              album {
                #... Repeat this 10000 times...
              }
            }
          }
        }
      }
    }
  }
}

Hiç yorum yok:

Yorum Gönder