私は新しいです、次の問題があります。私はそれを単純化しようとしました: 私は、例えばグローバル変数myvar
を持っているサーバーを持っています。すべてのユーザーは、エンドポイント/step1
をPOSTし、変数にいくつかのデータを保存できます。このデータは、第2のエンドポイント/step2
を使用してGETで取り出すことができます。これらの2つの呼び出しの間で、そのユーザーの値はmyvar
に変更されるべきではありません。複数のユーザーを持つサーバーインスタンス
このプロセスをすべてのユーザーにインスタンス化する方法があるかどうかを知りたいのは、あるユーザーが変数を変更しても他のユーザーに影響を与えないようにする必要があるからです。グローバル変数を必ずしも使う必要はありません。エンドポイントでやりたいことを公開するだけです。
コード:
package main
import (
"encoding/json"
"net/http"
"github.com/gorilla/mux"
"github.com/rs/cors"
"fmt"
)
type Test struct {
test string `json:"test,omitempty"`
}
func main() {
var myvar = "test"
router := mux.NewRouter()
router.HandleFunc("/step1", func(w http.ResponseWriter, r *http.Request) {
var test Test
_ = json.NewDecoder(r.Body).Decode(&test)
myvar = test.test
})
router.HandleFunc("/step2", func(w http.ResponseWriter, r *http.Request) {
fmt.Println(myvar)
})
c := cors.New(cors.Options{
AllowedOrigins: []string{"*"},
AllowCredentials: true,
AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "PATCH"},
AllowedHeaders: []string{"*"},
ExposedHeaders: []string{"*"},
})
handler := c.Handler(router)
http.ListenAndServe(":8003", handler)
}
フィードバックをお寄せいただき、ありがとうございましたフィードバックに戻る – Battalgazi
@Battalgaziコードを編集し、 'customData'ポインタを非ポインタに変更しました。これにより、同じ '* customData'値を修正して設定してください)。 – icza
ありがとう私はあなたが提案したようにマップを使用して動作させることができます:) – Battalgazi