Preise

Schnellstart

Quelldateien

Diese Seite wurde aus den folgenden Quelldateien erstellt:

Voraussetzungen und Installation

Systemanforderungen

Das Projekt xyz ist eine in Go geschriebene API für die XiaoyuzhouFM-Plattform. Die primäre Abhängigkeit ist die Go-Runtime. Gemäß der Modulkonfiguration wird Go 1.22.0 oder höher benötigt (go.mod:1-5). Das Projekt nutzt das Gin Web Framework (v1.9.1) als Hauptabhängigkeit für den HTTP-Server.

KomponenteAnforderungQuelle
Go-Version1.22.0+README.md:13-23
Web FrameworkGin v1.9.1go.mod:1-5
BetriebssystemCross-Platform (Linux, macOS, Windows)Go-Kompilierung

Repository klonen

Der Quellcode wird über Git geklont. Das Repository enthält alle notwendigen Dateien für die lokale Entwicklung:

bash
1git clone git@github.com:ultrazg/xyz.git
2cd xyz

Diese Befehle laden das Projekt in das lokale Verzeichnis xyz und wechseln in das Projektverzeichnis (README.md:13-23).

Abhängigkeiten installieren

Nach dem Klonen müssen die Go-Modulabhängigkeiten heruntergeladen werden:

bash
1go mod tidy

Dieser Befehl lädt alle in go.mod definierten Abhängigkeiten, einschließlich des Gin-Frameworks und aller transitiven Abhängigkeiten wie sonic (JSON-Encoder), validator und playground-Bibliotheken (go.mod:1-5).


Server starten und konfigurieren

Standardstart

Der einfachste Weg, den Server zu starten, ist die direkte Ausführung mit Go:

bash
1go run .

Dieser Befehl kompiliert und führt das Projekt im aktuellen Verzeichnis aus (README.md:25-46). Der Server startet standardmäßig auf Port 23020.

Port-Konfiguration

Der Standardport kann über das -p Flag geändert werden:

bash
1go run . -p 3000

Die Port-Konfiguration wird durch die Funktion InitFlag() in utils/port.go implementiert, die das Kommandozeilen-Flag -p mit dem Standardwert 23020 definiert (utils/port.go:16-27).

FlagStandardwertBeschreibung
-p23020Server-Port (utils/port.go:16-27)
-dfalseAPI-Dokumentation öffnen (utils/port.go:16-27)

API-Dokumentation

Das Projekt bietet eine integrierte API-Dokumentation. Um den Server zu starten und gleichzeitig die Dokumentation zu öffnen:

bash
1go run . -d

Nach dem Start sind folgende Endpunkte verfügbar:

  • API-Endpunkt: http://localhost:{{port}}/login
  • Dokumentation: http://localhost:{{port}}/docs

Die Dokumentations-URL wird auch beim Start in der Konsole angezeigt (utils/p.go:1-20).


Programmatische Nutzung und Module

Import als Go-Modul

Das Projekt kann als Bibliothek in andere Go-Projekte integriert werden. Zunächst wird das Modul hinzugefügt:

bash
1go get github.com/ultrazg/xyz

Anschließend kann der Service programmatisch gestartet werden (README.md:49-70):

go
1package main
2
3import (
4    "fmt"
5
6    "github.com/ultrazg/xyz/service"
7)
8
9func main() {
10    err := service.Start()
11    if err != nil {
12        fmt.Println("fail")
13    }
14}

Einstiegspunkt-Architektur

Der Einstiegspunkt main.go zeigt die minimale Struktur: Import des service-Pakets und Aufruf von service.Start() (main.go:1-13). Bei einem Fehler wird log.Fatal() aufgerufen, was das Programm beendet.

go
1// main.go Struktur
2package main
3
4import (
5    "github.com/ultrazg/xyz/service"
6    "log"
7)
8
9func main() {
10    err := service.Start()
11    if err != nil {
12        log.Fatal(err)
13    }
14}

Deployment mit Docker

Docker-Image erstellen

Das Projekt enthält ein Dockerfile für Container-Deployments. Das Image basiert auf golang:1.22-alpine:

dockerfile
1FROM golang:1.22-alpine
2WORKDIR /app
3COPY go.mod go.sum ./
4RUN go clean -modcache && \
5    go mod download -x && \
6    go mod verify
7COPY . .
8RUN go build -o xyz .
9CMD ["./xyz"]

Der Build-Prozess (Dockerfile:1-15) umfasst:

  1. Kopieren der Moduldateien
  2. Herunterladen und Verifizieren der Abhängigkeiten
  3. Kompilieren der Binary xyz
  4. Starten der Binary als Container-Prozess

Docker Compose

Für schnellere Deployments steht eine docker-compose.yml bereit:

yaml
1version: '3'
2services:
3  xyz:
4    image: ultrazg/xyz:v1.4.2
5    ports:
6      - "8080:8080"

Mit einem Befehl kann der Dienst gestartet werden (docker-compose.yml:1-7):

bash
1docker-compose up -d

Der Dienst ist dann unter http://localhost:8080 erreichbar.


Verifikation und Test

Erfolgreicher Start überprüfen

Nach dem Start des Servers sollte die Konsole das Projekt-Logo und die Dokumentations-URL anzeigen:

:::    ::: :::   ::: ::::::::: 
:+:    :+: :+:   :+:      :+:  
 +:+  +:+   +:+ +:+      +:+   
  +#++:+     +#++:      +#+    
 +#+  +#+     +#+      +#+     
#+#    #+#    #+#     #+#      
###    ###    ###    ######### vX.X.X

API 文档:http://localhost:23020/docs

Diese Ausgabe wird durch die Funktion P() in utils/p.go generiert (utils/p.go:1-20).

Endpunkte testen

Ein einfacher Test mit curl:

bash
1# API-Dokumentation abrufen
2curl http://localhost:23020/docs
3
4# Login-Endpunkt testen
5curl http://localhost:23020/login

Minimale Laufzeitumgebung

Empfohlener Schnellstart

Für die schnellste Inbetriebnahme wird folgende Sequenz empfohlen:

bash
1# 1. Repository klonen
2git clone git@github.com:ultrazg/xyz.git && cd xyz
3
4# 2. Abhängigkeiten laden
5go mod tidy
6
7# 3. Server starten
8go run .

Nach Ausführung dieser drei Befehle ist der Server unter http://localhost:23020 erreichbar.

Alternative Startmethoden

MethodeBefehlAnwendungsfall
Go Rungo run .Entwicklung
Go Buildgo build -o xyz . && ./xyzProduktion
Dockerdocker-compose up -dContainer-Deployment
BinaryDownload von ReleasesOhne Kompilierung

Häufige Probleme und Lösungen

Problem 1: Port bereits belegt

Symptom: Der Server startet nicht mit der Meldung "Port 23020 nicht verfügbar".

Lösung: Einen anderen Port verwenden:

bash
1go run . -p 3000

Die Funktion CheckPort() in utils/port.go prüft die Verfügbarkeit des Ports vor dem Start (utils/port.go:29-38).

Problem 2: Go-Version inkompatibel

Symptom: Kompilierungsfehler aufgrund inkompatibler Go-Version.

Lösung: Sicherstellen, dass Go 1.22.0 oder höher installiert ist:

bash
1go version

Die Version wird in go.mod explizit als go 1.22.0 angegeben (go.mod:1-5).

Problem 3: Modulabhängigkeiten nicht gefunden

Symptom: Fehler beim go mod tidy oder go run ..

Lösung: Modul-Cache bereinigen und neu laden:

bash
1go clean -modcache
2go mod download
3go mod tidy

Diese Schritte entsprechen dem Build-Prozess im Dockerfile (Dockerfile:7-9).

Problem 4: Docker-Container startet nicht

Symptom: Container beendet sich sofort nach dem Start.

Lösung: Logs überprüfen:

bash
1docker-compose logs xyz

Häufige Ursachen sind Port-Konflikte oder fehlende Umgebungsvariablen.


Nächste Schritte

Weiterführende Dokumentation

Nach erfolgreichem Start empfiehlt sich die Konsultation folgender Ressourcen:

  1. API-Dokumentation: Unter http://localhost:{{port}}/docs nach dem Start verfügbar
  2. Funktionsübersicht: Die README.md listet über 50 unterstützte API-Funktionen auf (README.md:76-127)

Verfügbare API-Funktionen

Das Projekt bietet umfangreiche Funktionen für die XiaoyuzhouFM-Plattform:

  • Authentifizierung (SMS-Login, Token-Refresh)
  • Suche (Programme, Episoden, Benutzer)
  • Abonnement-Verwaltung
  • Wiedergabe-Status und Verlauf
  • Kommentare und Interaktionen
  • Benutzerprofile und Einstellungen

Eine vollständige Liste befindet sich in der README unter "功能" (README.md:76-127).


Architektur-Überblick

正在加载图表渲染器...

Die Architektur folgt einem modularen Ansatz mit klarer Trennung zwischen Einstiegspunkt, Service-Logik und Hilfsfunktionen. Der HTTP-Client in utils/http.go verwendet ein 15-Sekunden-Timeout für externe Anfragen (utils/http.go:12-14).