Creando una API GraphQL con Apollo Server Lambda y Netlify

Apolloes realmente muy sencillo의 시공도.Obviamente que esto depende del tamaño de nuestra API.
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 가족:
  • 아폴로 서버 lambda
  • graphql
  • netlify lambda
  • 인코딩
  • Una vez que tengamos nuestras dependencias instaladas abrimos elpackage.jsony en el camposcriptscolocamos lo siguiente:
    "scripts": {
      "start": "netlify-lambda serve src",
      "build": "netlify-lambda build src"
    }
    
    Elsrchace referencia al nombre de la carpeta que contendránuestros archivos(puede tener cualquier otro nombre),en este caso yo decidíporsrc.
    Ahora creemos un archivojscon 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/graphqly 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 losresolvers,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 lostypeDefsyresolverslistos,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.tomlque contendrála configuración para Netlify.
    Este archivo debe ir en laíz del proyecto.
    Ejempo de como se ve un archivonetlify.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 comandofunctionscrearáuna carpeta con El nombre que nosotros le demos en este caso yo decidíllamarlofunctions,pero puede serlambdapor 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 usadoencodingestá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!!!💛
    너는 어떤 알고리즘을 자유롭게 선택할 수 있다.😊
    나는 매우 기쁘다.

    좋은 웹페이지 즐겨찾기