Project IDX yang diluncurkan pada Juni 2024 merupakan ruang kerja berbasis AI untuk pengembangan aplikasi full-stack di cloud. Ia mendukung berbagai macam framework, bahasa, dan layanan, serta integrasi dengan produk Google untuk menyederhanakan alur kerja pengembangan.
Kami akan memanfaatkan hal ini untuk menunjukkan kepada Anda cara membangun aplikasi dengan Go dalam hitungan menit. Kita akan menyiapkan lingkungan pengembangan Go di Project IDX dan membuat aplikasi server pertama Anda. Mari kita pelajari cara menyiapkan lingkungan pengembangan Go di IDX dan membuat server halo dunia sederhana.
Ada beberapa cara untuk membuat ruang kerja di IDX. Anda bisa mengimpor repositori GitHub, membuat ruang kerja kosong baru dari awal, atau menggunakan template yang telah dikonfigurasi sebelumnya. Kami akan menunjukkan kepada Anda cara memulai dari awal terlebih dahulu, kemudian kita akan mempelajari template
Bagian ini akan menjelaskan penyiapan lingkungan dan penulisan server Halo Dunia dasar dengan IDX.
Mari kita mulai dengan membuat project kosong baru di IDX dari idx.google.com/new/blank. Project ini berisi README dan dev.nix default.
Konfigurasi lingkungan bisa disesuaikan dengan konfigurasi lingkungan nix. Konfigurasi minimal untuk ruang kerja Go di IDX akan menambahkan paket nix Go dan menginstal ekstensi Go:
Update .idx/dev.nix untuk menyertakan paket nix Go dan ekstensi Go:
{ pkgs, ... }: {
packages = [
pkgs.go
];
idx = {
extensions = [
"golang.go"
];
};
}
Bangun kembali lingkungan Anda agar perubahan ini dapat diterapkan.
Setelah ruang kerja siap untuk pengembangan kode Go, kita bisa mulai menulis server Go.
Pertama-tama, mari kita melakukan inisialisasi modul yang akan berisi kode Go. Anda bisa melakukannya dengan menjalankan > Go: Initialize go.mod
yang disediakan oleh ekstensi Go dari Command Palette, atau dengan menjalankan go mod init
dari command line.
$ go mod init github.com/myorg/helloWorld
Mari kita buat main.go
dengan server sederhana yang menampilkan “Halo, Dunia!”
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")
}
Sekarang kita telah memiliki server yang bisa mendengarkan permintaan, mari kita mengujinya dengan membuat pratinjau.
Untuk .idx/dev.nix, tambahkan konfigurasi pratinjau web:
idx = {
previews = {
enable = true;
previews = {
web = {
command = ["go" "run" "main.go"];
manager = "web";
env = {
# Environment variables to set for your server
PORT = "$PORT";
};
};
};
};
};
Bangun kembali lingkungan untuk melihat pratinjau web. Pratinjau juga bisa dibuka dari Command Palette dengan menggunakan > Project IDX: Show Web Preview
.
Untuk memulai dengan cepat, kami menyediakan template siap pakai yang menyertakan lingkungan yang sudah dikonfigurasi sebelumnya dengan semua alat dan library yang dibutuhkan.
Mulailah dengan salah satu template server backend Go atau mulai membangun aplikasi LLM dengan template Go dan Gemini.
Template Gemini dengan Go terintegrasi dengan Gemini API untuk memanfaatkan kekuatan AI. Masukkan kunci Gemini API Anda untuk memulai.