Creando una API GraphQL con Apollo Server Lambda y Netlify
12548 단어 graphqlnodewebdevjavascript
Hace unos días empeze a desarrollar una API GraphQL con Apollo Server Lambda y Netlify Lambda y quería Comparitir con ustedes lo sencillo que fue construirla.
Aunque estuve con un poco de dolor de cabeza al momento de desplegar la API jaja pero creo esto es normal? 아니오?
마노스 a la obra👷♂️
Lo primero que debemos hacer es obviament e installar nuestras dependencias para el proyecto.
Instalar las siguientes 가족:
package.json
y en el camposcripts
colocamos lo siguiente:"scripts": {
"start": "netlify-lambda serve src",
"build": "netlify-lambda build src"
}
Elsrc
hace referencia al nombre de la carpeta que contendránuestros archivos(puede tener cualquier otro nombre),en este caso yo decidíporsrc
.Ahora creemos un archivo
js
con el nombre graphql y requerimos ApolloServer.유엔이 계속 노력하다.
const { ApolloServer } = require('apollo-server-lambda');
const server = new ApolloServer({});
exports.handler = server.createHandler();
Ahora podemos ejecutar nuestra api$ npm start
# o con yarn
$ yarn start
Una vez ejecutada la API vamos al navegador y en la URL pasamoslocalhost:9000/graphql
y nos mostraráel GraphQL playder,pero aún no podremos hacer consultas ya que no hemos agregado un esquema y no hay datos.Ejempo de como se ve el 놀이터:
Creando los esquemas o typeDefs 회사
En una API GraphQL necesitamos crear esquemas o también llamados definición de tipos,es como validar la API o tambien puede ser considerado como un mapa de lo que recibiremos.
크림과 뉴 아키보.
const { gql } = require('apollo-server-lambda');
const typeDefs = gql`
type users {
id: ID
username: String
name: String
lastname: String
age: Int
}
type Query {
Users: [users]
}
`;
module.exports = typeDefs;
우리의 목표는 너의 생활을 활기차게 하는 것이다.Creando los 분해기
En GraphQL existen los
resolvers
,que son los que resolverán nuestrotypeDefs
,osea son los encargados de traer los datos respetando lostypeDefs
.크림과 뉴 아키보.
// Ejemplo si los datos estarían en un archivo estático.
const users = require('./data');
const resolvers = {
Query: {
Users: () => users
}
};
module.exports = resolvers;
아쿠스탕드 nosotros har íamos las consultas a la base de datos o a ún archivo est ático.Una vez que tengamos lostypeDefs
yresolvers
listos,tenemos que pasarlos a la configuración del server.Volvemos al archivo graphql
const { ApolloServer } = require('apollo-server-lambda');
const typeDefs = require('./typeDefs');
const resolvers = require('./resolvers');
const server = new ApolloServer({
typeDefs,
resolvers
});
exports.handler = server.createHandler();
아폴로 서버는 목표와 서비스의 푸덴파사르 무체스 más opciones pero como mínimo debe tener estosdos입니다.Ahora si volvemos a ejecutar nuestra API esta vez podremos hacer consultas en el Players.
Ejempo:
query allUsers {
Users {
id
username
name
lastname
age
}
}
답장:{
"data": {
"Users": [
{
"id": "1",
"username": "Franqsanz",
"name": "Franco Andrés",
"lastname": "Sánchez",
"age": 23
},
//...
]
}
}
Ahora que tenemos nuestra API lista podemos desplegar a Netlify pero primero necesitamos un archivo llamadonetlify.toml
que contendrála configuración para Netlify.Este archivo debe ir en laíz del proyecto.
Ejempo de como se ve un archivo
netlify.toml
:[build]
command = "npm run build" # o con yarn: "yarn build".
functions = "functions" # este comando creará una carpeta llamada "functions" y guardara las funciones Lambda.
publish = "src" # carpeta que contiene los archivos del proyecto.
[[redirects]]
from = "/graphql"
to = "./netlify/functions/graphql"
status = 200
force = true
El comandofunctions
crearáuna carpeta con El nombre que nosotros le demos en este caso yo decidíllamarlofunctions
,pero puede serlambda
por ejempo.Tu no tienes que preocuparte por esta carpeta,se crearáautomáticamente cuando ejecutes el proyecto.그의 아들 las funciones Lambda,pero no voy a defoundizar en el tema por qué no tengo mucho conocimiento a ún.
Desplegando a Netlify 회사🚀
Una vez que tengamos todo listo es hora de desplegar la API,primero creamos un repositorio en github para asítener despliegue continuo a Netlify,luego crearse Una cuenta en Netlify o si ya tienes Una inicia sesión,ahora solo debes agregar este repositorio a Netlify y y y esperar que se implement.
Si te haz dado cuenta hay una dependencia que no hemos usado
encoding
estádependencia lo usaráNetlify,por lo menos en mícaso debíinstallarla ya que me daba un error al momento del despliegue.Si todo salióbien ya podrás ver tu API en producción con el CDN generado y probar cómo functiona.
결론
Este fue una breve introduction acción de como crear una API GraphQL y desplegar en Netlify con functiones Lambda,hay mucho más por aprender y hay muy buenos artículos en internet.Espero que te haya sidoútil este artículo.
Puedes ver míAPI en github por si tienes dudas.
Ver API en GitHub
Ver API en producción
Puedes forquear o clonar el repositorio y Mejorallo.👍🏻
Si llegaste hasta aqíwow muchas gracias por leer!!!💛
너는 어떤 알고리즘을 자유롭게 선택할 수 있다.😊
나는 매우 기쁘다.
Reference
이 문제에 관하여(Creando una API GraphQL con Apollo Server Lambda y Netlify), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/franqsanz/creando-una-api-graphql-con-apollo-server-lambda-y-netlify-4d43텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)