Есть фронтенд который присылает данные first_name = введённое имя , last_name = введённая фамилия в бэкенд. Как сделать так чтоб бэкенд все присланные данные записал и их можно было запросить фронтендом GET . Только начинаю изучать бэкенд . Не судите строго за код и за знание языка GO .
package main
import (
"log"
"net/http"
"fmt"
"encoding/json"
"io/ioutil"
"github.com/gorilla/handlers"
"github.com/gorilla/mux"
)
type Response struct {
Status string `json:"status"`
}
type Names struct {
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
}
func postName(w http.ResponseWriter,r *http.Request){
if r.Method == "OPTIONS" {
return
}
b, err := ioutil.ReadAll(r.Body)
if err != nil {
// check err
}
var n Names
if err := json.Unmarshal(b, &n); err != nil {
// check err
}
log.Printf("FirstName: %v , LastName: %v \n", n.FirstName, n.LastName) // выводит отправленные данные
res, err := json.Marshal(n)
if err != nil {
// check err
}
w.Header().Set("content-type", "application/json")
w.Write(res)
}
func getName(w http.ResponseWriter,r *http.Request){
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(Response{Status: "OK"})
}
func main() {
fmt.Println("Start")
router := mux.NewRouter()
router.HandleFunc("/get",getName).Methods("GET")
router.HandleFunc("/post",postName).Methods("POST")
fmt.Println("Listen and Server")
headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Content-Type", "Authorization"})
originsOk := handlers.AllowedOrigins([]string{"http://localhost:8080", "http://localhost:8081", "http://localhost:3000"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"})
credentialsOk := handlers.AllowCredentials()
log.Fatal(http.ListenAndServe(":8000" , handlers.CORS(headersOk, originsOk, methodsOk, credentialsOk)(router)))
}
Чтобы что то похожее было только состоящее из first_name и last_name