Rest

Aus ahrensburg.city
Version vom 12. August 2024, 09:02 Uhr von Thorsten (Diskussion | Beiträge) (// via Wikitext Extension for VSCode)

Wiki Artikeln in Rest Api ausgeben

Einleitung

In diesem Artikel wird beschrieben, wie


Wiki Inhalte in Rest Api ausgeben

Einleitung

In diesem Artikel wird beschrieben, wie

html ausgabe ohne Bearbeitung Funktionen

Beispiel mit Golang

```go package main

import (

   "encoding/json"
   "fmt"
   "io/ioutil"
   "net/http"

)

func main() {

   http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
       // URL der API-Abfrage
       url := "https://wiki.ahrensburg.city/api.php?action=parse&format=json&page=Geografie&disableeditsection=1&disabletoc=1"
       // API-Abfrage durchführen
       resp, err := http.Get(url)
       if err != nil {
           http.Error(w, "Fehler bei der API-Abfrage: "+err.Error(), http.StatusInternalServerError)
           return
       }
       defer resp.Body.Close()
       body, err := ioutil.ReadAll(resp.Body)
       if err != nil {
           http.Error(w, "Fehler beim Lesen der Antwort: "+err.Error(), http.StatusInternalServerError)
           return
       }
       // JSON-Antwort parsen
       var data map[string]interface{}
       err = json.Unmarshal(body, &data)
       if err != nil {
           http.Error(w, "Fehler beim Parsen der JSON-Antwort: "+err.Error(), http.StatusInternalServerError)
           return
       }
       // HTML-Inhalt erstellen
       htmlContent := "<html><head><title>Geografie</title></head><body>"
       if parse, ok := data["parse"].(map[string]interface{}); ok {
           title := parse["title"].(string)
           text := parse["text"].(map[string]interface{})["*"].(string)

htmlContent += fmt.Sprintf("

%s

%s", title, text)

       } else {

htmlContent += "

Kein Inhalt gefunden.

"

       }
       htmlContent += "</body></html>"
       // HTML-Inhalt ausgeben
       w.Header().Set("Content-Type", "text/html; charset=utf-8")
       w.Write([]byte(htmlContent))
   })
   // HTTP-Server auf Port 8080 starten
   fmt.Println("Server läuft auf http://localhost:8080")
   http.ListenAndServe(":8080", nil)

}

```