Agenda
- GraphQL
- GraphQL servers and Frontend
- GraphQL con Prisma
Que es GraphQL
- New API standard desarrollada por Facebook
- Type system and query language
- Core primitives: Query, Mutation and Suscriptions
Por que usar GraphQL
- Schema fuertemente tipado para nuestra API
- Autogenera la documentacion propia
- Queries extraen la data que necesitas
- Muchas herramientas y gran comunidad
Demo
Desde graphIQL
Parts of Graphql server
- Api definitios: GraphQL Schema
- Implementacion: resolvers functions
- Setup: Framework, Network(http), Middleware
CRUD for User type
type User {
id: ID!
name: String!
}
type Query {
user(id: ID!): User
users: [Users!]!
}
type Mutation {
createUser(name: String!): User!
updateUser(id: ID!, name: String!): User
deleteUser(id: ID!): User
}Resolvers
- Concretan la implementacion del API
- Un resolver por campo en el SDL
- Query invocan todos los resolver para los campos
CRUD for User type
type User {
id: ID!
name: String!
}
type Query {
user(id: ID!): User
users: [Users!]!
}
type Mutation {
createUser(name: String!): User!
updateUser(id: ID!, name: String!): User
deleteUser(id: ID!): User
}const resolvers = {
Query: {
user: (root, args) => db.getUser(args.id),
users: () => db.getUsers(),
},
Mutation: {
createUser: (root, args) =>
db.createUser(args.name)
updateUser: (root, args) =>
db.updateUser(args.id, args.name)
deleteUser: (root, args) =>
db.deleteUser(args.id)
}
};¿Que es prisma?
- Capa de acceso a base de datos fuertemente tipado
- Auto genera el cliente de base de datos type-safe
- Data modeling and migrations
Prisma + GraphQL
- Performant query resolution. Batching and caching
- CRUDS and real-time operations
- End-to-end type-safety (Database, server and frontend)
GraphQL + Prisma
By Miguel Cast
GraphQL + Prisma
- 156