Project IDX 于 2024 年 6 月推出,是一个用于云端全栈应用开发的 AI 辅助工作区,支持各种框架、语言和服务,以及与 Google 产品的集成以简化开发工作流。
我们将利用 Project IDX 向您展示如何在几分钟内使用 Go 构建应用。我们将在 Project IDX 中设置 Go 开发环境,并创建您的首个服务器应用。我们将介绍如何在 IDX 中设置 Go 开发环境并创建简单的 Hello World 服务器。
在 IDX 中创建工作区有几种不同的方法。您可以导入 GitHub 代码库,从头开始创建新的空白工作区,或使用预配置模板。我们将首先向您展示如何从零开始,然后我们再了解各种模板
本部分将介绍如何使用 IDX 设置环境并编写基本的 Hello World 服务器。
首先,我们从 idx.google.com/new/blank 的 IDX 中创建一个新的空白项目。此项目包含一个自述文件和一个默认的 dev.nix。
您可以使用 nix 环境配置对环境配置进行自定义。IDX 中 Go 工作区的最小配置将添加 Go nix 软件包并安装 Go 扩展程序:
更新 .idx/dev.nix,使其包含 Go nix 软件包和 Go 扩展程序:
{ pkgs, ... }: {
packages = [
pkgs.go
];
idx = {
extensions = [
"golang.go"
];
};
}
重新构建环境,以便这些更改生效。
用于 Go 代码开发的工作区已经设置完成,现在,我们可以开始编写 Go 服务器了。
首先,我们要初始化包含 Go 代码的模块。您可以通过运行 >Go: Initialize go.mod
(由命令面板中的 Go 扩展程序提供)或从命令行运行 go mod init
来执行此操作。
$ go mod init github.com/myorg/helloWorld
我们来用一个简单的服务器创建 main.go
,使其返回“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")
}
现在我们已经建好可以监听要求的服务器,让我们通过创建预览来测试一下。
将 Web 预览配置添加到 .idx/dev.nix:
idx = {
previews = {
enable = true;
previews = {
web = {
command = ["go" "run" "main.go"];
manager = "web";
env = {
# Environment variables to set for your server
PORT = "$PORT";
};
};
};
};
};
再次重新构建环境以查看 Web 预览。您也可以使用 > Project IDX: Show Web Preview
,通过命令面板打开预览。
为了快速入门,我们将为您提供即用型模板,当中的预配置环境包含您需要的所有工具和库。
首先,请选择一个 Go 后端服务器模板,或使用 Go 和 Gemini 模板开始构建 LLM 应用程序。
Go 模板中的 Gemini 与 Gemini API 集成,可以发挥 AI 的力量。插入您的 Gemini API 密钥即可开始使用。