my/go/l19/l1.go

53 lines
904 B
Go
Raw Normal View History

2026-06-26 00:33:10 +03:00
package main
import (
"fmt"
"net/http"
"encoding/json"
)
type User struct{
Age int `json:"age"`
Name string `json:"name"`
Email string `json:"email"`
}
var setChan = make(chan User)
func handle(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "not", http.StatusMethodNotAllowed)
return
}
var data User
err := json.NewDecoder(r.Body).Decode(&data)
if err != nil {
http.Error(w,"no", http.StatusBadRequest)
return
}
defer r.Body.Close()
setChan <- data
w.WriteHeader(http.StatusOK)
w.Write([]byte("Data received"))
}
func WatchChanell() {
for u := range setChan {
JsonData, err := json.Marshal(u)
if err != nil { continue }
fmt.Println(string(JsonData))
}
}
func main() {
go WatchChanell()
http.HandleFunc("/user", handle)
fmt.Println(":7777")
err := http.ListenAndServe(":7777", nil)
if err != nil {
panic(err)
}
}