В моем приложении Go у меня есть такой маршрут :
router.HandleFunc("/api/users_groups_relationship/{user_id:[0-9]+}", controllers.CreateUsersGroupsRelationship).Methods("POST")
Я делаю POST запрос.В теле этого запроса я посылаю такой JSON, который выглядит следующим образом:
{
"groups": [1, 2, 3]
}
Как видите, ключ groups
имеет массив идентификаторов в качестве значения.Пользователь может быть в нескольких группах.Я пытаюсь вставить несколько значений в базу данных PostgreSQL.
Как получить значение определенного ключа в теле запроса?
Есть лилюбой другой лучший способ вставить несколько значений в базу данных с помощью Go?
Мой код:
var CreateUsersGroupsRelationship = func(responseWriter http.ResponseWriter, request *http.Request) {
vars := mux.Vars(request)
userID := vars["user_id"]
fmt.Println(userID)
var groups []int
groups = request.Body("groups") // ???
for i := 1; i < len(groups); i++ {
fmt.Println(groups[i])
_, _ := database.DBSQL.Exec("INSERT INTO users_groups (user_id, group_id) VALUES ($1, $2);", userID, groups[i])
}
utils.ResponseWithSuccess(responseWriter, http.StatusOK, "All new records successfully created.")
}