Päästä päähän ulottuva tyyppiturvallisuus: schema first -työnkulku
Säilyttäkää yksi totuuden lähde skeemasta asiakkaalle asti
Päästä päähän ulottuva tyyppiturvallisuus: schema first -työnkulku on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu TypeScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. TypeScript Academy-kurssilla on yhteensä 4 oppituntia.
Mitä schema-first tarkoittaa
Schema-first tarkoittaa, että GraphQL-skeema on ainoa totuuden lähde. Käyttöliittymän tyypit, backendin resolverit ja API-sopimukset johdetaan kaikki siitä — näin mikään kerros ei pääse erkaantumaan muista.
# The workflow:
# 1. Define schema (.graphql or SDL)
# 2. Generate server resolver types
# 3. Generate client operation types
# 4. Both sides automatically stay in syncSkeeman määrittäminen
Kirjoittakaa GraphQL-skeemanne SDL-muodossa (.graphql-tiedostoihin) ja tallentakaa se repositorioon asiakkaan ja palvelimen välisenä sopimuksena.
# schema.graphql
type User {
id: ID!
name: String!
email: String!
}
type Query {
user(id: ID!): User
}Palvelin: resolver-tyyppien luominen
Suorittakaa codegen typescript-resolvers-lisäosan kanssa luodaksenne skeemasta tyypitetyt resolver-signatuurit.
# Server codegen step
npx graphql-codegen --config codegen.server.ymlAsiakas: operaatiotyyppien luominen
Suorittakaa codegen typescript-operations-lisäosan sekä Apollo- tai urql-lisäosien kanssa luodaksenne tyypitetyt hookit .graphql-operaatiotiedostoista.
# Client codegen step
npx graphql-codegen --config codegen.client.ymlRikkovien muutosten tunnistaminen
Käyttäkää graphql-inspector-työkalua tunnistaaksenne rikkovat skeemamuutokset, kuten kenttien poistot ja tyyppien muutokset, ennen kuin ne päätyvät tuotantoon.
npx graphql-inspector diff ./api/schema.graphql ./api/schema.new.graphql
# Reports: BREAKING: Field 'User.email' was removedSkeemarekisteri
Skeemarekisteri, kuten Apollo Studio tai Hive, tallentaa skeemaversiot, seuraa muutoksia ajan mittaan ja ilmoittaa CI:ssä rikkovista muutoksista.
# Push schema to Apollo Studio:
npx apollo schema:push --endpoint https://api.example.com/graphqlMock-data skeeman avulla
Käyttäkää skeemaa mock-datan luomiseen asiakasohjelman kehitystä varten ilman oikeaa palvelinta ja pitäkää mockit skeeman mukaisina.
import { buildClientSchema, introspectionFromSchema } from "graphql";
import { addMocksToSchema } from "@graphql-tools/mock";
const schema = buildClientSchema(introspectionResult);
const mockedSchema = addMocksToSchema({ schema });tRPC vaihtoehtona
Pelkästään TypeScriptiä käyttävissä projekteissa tRPC tarjoaa päästä päähän ulottuvan tyyppiturvallisuuden ilman skeemakieltä — palvelimen reitittimen tyyppi ON asiakkaan sopimus.
// Server: router infers types
const router = t.router({ getUser: t.procedure.query(() => fetchUser()) });
// Client: types flow automatically via inference
const { data } = trpc.getUser.useQuery();Zod + tRPC validointiin
Yhdistäkää Zod-skeemat tRPC:n syötevalidaattoreihin saadaksenne ajonaikaisen validoinnin ja käännösaikaiset tyypit yhdestä määrittelystä.
const createUser = t.procedure
.input(z.object({ name: z.string(), email: z.string().email() }))
.mutation(({ input }) => saveUser(input));
// input: { name: string; email: string } — from Zod schemaCI: täydellinen skeeman tyyppiturvallisuusputki
Täydellinen CI-putki schema-first-tyyppiturvallisuudelle: skeeman linttaus → rikkovien muutosten tarkistus → codegenin suoritus → tyyppitarkistus → testien suoritus.
# .github/workflows/schema.yml
- run: npx graphql-inspector validate ...
- run: npx graphql-codegen --check
- run: npx tsc --noEmit
- run: npm testKertaus: schema-first-työnkulku
Schema-first TypeScriptissä: määritelkää SDL → luokaa palvelimen resolver-tyypit → luokaa asiakkaan operaatiotyypit → tunnistakaa rikkovat muutokset CI:ssä. Skeema on kaikkien tyyppiturvallisuuden kerrosten ainoa totuuden lähde.
Pikatarkistus
Mikä on GraphQL-skeeman tehtävä schema-first-työnkulussa?
Mitä opitte
Schema-first-TypeScript-työnkuluissa kaikki tyypit johdetaan GraphQL-skeemasta. Luokaa palvelimelle resolver-tyypit ja asiakkaalle operaatiotyypit, tunnistakaa rikkovat muutokset CI:ssä ja ylläpitäkää skeemaa kaikkien kerrosten välisenä sopimuksena.
Opi TypeScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 101
- Oppitunnit
- 352
Usein kysytyt kysymykset
Onko oppitunti ”Päästä päähän ulottuva tyyppiturvallisuus: schema first -työnkulku” ilmainen?
Kyllä – oppitunnin ”Päästä päähän ulottuva tyyppiturvallisuus: schema first -työnkulku” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko TypeScript Academy-kurssin, päivitä CoddyKit PROhon. TypeScript Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Päästä päähän ulottuva tyyppiturvallisuus: schema first -työnkulku”?
Säilyttäkää yksi totuuden lähde skeemasta asiakkaalle asti Harjoittelet TypeScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni TypeScript Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin TypeScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Päästä päähän ulottuva tyyppiturvallisuus: schema first -työnkulku”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä TypeScript Academy-oppitunnilla?
Kyllä. Jokainen TypeScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- GraphQL-skeemasta TypeScript-tyypeiksi
- Tyypitetyt resolverit GraphQL Code Generatorilla
- Tyypitetty GraphQL-asiakas Apollolla ja urql:llä
- Päästä päähän ulottuva tyyppiturvallisuus: schema first -työnkulku