Crea aplicaciones para Go usando Project IDX y la API de Gemini

DIC 18, 2024
Suzy Mueller Software Engineer
Nooras Saba Engineering Manager

Project IDX, que se lanzó en junio de 2024, es un espacio de trabajo asistido por IA para el desarrollo de aplicaciones de pila completa en la nube. Admite una amplia gama de frameworks, lenguajes y servicios, además de integraciones con los productos de Google para agilizar los flujos de trabajo de desarrollo.

Vamos a aprovechar esto para mostrarte cómo crear aplicaciones para Go en minutos. Configuraremos un entorno de desarrollo para Go en Project IDX y crearemos tu primera aplicación de servidor. Veremos la configuración de un entorno de desarrollo para Go en IDX y la creación de un simple servidor de Hello World.

Hay diferentes formas de crear espacios de trabajo en IDX. Puedes importar un repositorio de GitHub, crear un nuevo espacio de trabajo en blanco desde cero o usar una plantilla preconfigurada. Primero, te mostraremos cómo empezar desde cero, y luego echaremos un vistazo a las plantillas.


Cómo comenzar

En esta sección, te indicaremos cómo configurar un entorno y escribir un servidor Hello World básico con IDX.

Daremos los primeros pasos creando un nuevo proyecto en blanco en IDX, en idx.google.com/new/blank. Este proyecto contiene un README y un dev.nix predeterminado.


Personalización del entorno

La configuración del entorno se puede personalizar con configuraciones de entorno de nix. Una configuración mínima para un espacio de trabajo para Go en IDX agregará el paquete nix para Go e instalará la extensión de Go:

Actualiza .idx/dev.nix para incluir el paquete nix para Go y la extensión de Go:

{ pkgs, ... }: {
  packages = [
    pkgs.go
  ];
 
  idx = {
    extensions = [
      "golang.go"
    ];
  };
}

Reconstruye tu entorno para permitir que estos cambios se hagan efectivos.


Escribir código Go

Ahora que el lugar de trabajo se configuró para el desarrollo de código Go, podemos comenzar a escribir nuestro servidor de Go.

Primero, inicialicemos el módulo que contendrá nuestro código Go. Puedes hacerlo ejecutando el comando > Go: Initialize go.mod proporcionado por la extensión de Go desde la paleta de comandos, o ejecutando go mod init desde la línea de comandos.

$ go mod init github.com/myorg/helloWorld

Vamos a crear un main.go con un simple servidor que devuelva “Hello World!”.

package main
 
import (
	"fmt"
	"log"
	"net/http"
	"os"
)
 
func main() {
	log.Print("starting server...")
	http.HandleFunc("/", handler)
 
	// Determine port for HTTP service.
	port := os.Getenv("PORT")
	if port == "" {
		port = "3000"
		log.Printf("defaulting to port %s", port)
	}
 
	// Start HTTP server.
	log.Printf("listening on port %s", port)
	if err := http.ListenAndServe(":"+port, nil); err != nil {
		log.Fatal(err)
	}
}
 
func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprint(w, "<!DOCTYPE html>\n")
	fmt.Fprint(w, "Hello, World!\n")
}

Obtener vista previa en IDX

Ahora que tenemos un servidor que puede escuchar solicitudes, probémoslo creando una vista previa.

En .idx/dev.nix, agrega la configuración de vista previa web:

idx = {
      previews = {
      enable = true;
      previews = {
          web = {
          command = ["go" "run" "main.go"];
          manager = "web";
          env = {
            # Environment variables to set for your server
            PORT = "$PORT";
          };
        };
      };
    };
  };

Vuelva a reconstruir el entorno para ver la vista previa web. Esta también se puede abrir desde la paleta de comandos utilizando > Project IDX: Mostrar vista previa web.

Show Web Preview in Project IDX

Explorar plantillas de Go en IDX

Para que puedas comenzar rápidamente, te proporcionamos plantillas listas para usar que incluyen un entorno preconfigurado con todas las herramientas y las bibliotecas necesarias.

Empieza con una de las plantillas de servidor de backend de Go o comience a crear aplicaciones de LLM con la plantilla de Go y Gemini.

La plantilla de Gemini con Go está integrada con la API de Gemini para que puedas aprovechar el poder de la IA. Conecta tu clave API de Gemini para empezar a desarrollar.

Code editor displays project files and a web page titled "Baking with Gemini"  with images of baked goods and a prompt to provide a recipe in IDX