Вызов API REST с несколькими параметрами - PullRequest
0 голосов
/ 31 января 2020

В настоящее время мои маршруты для моего REST API установлены следующим образом: используя mux

localhost: 8080 / user / {id} localhost: 8080 / space / {id}

server.Router.HandleFunc("/users", middlewares.SetMiddlewareJSON(server.GetUsers)).Methods("GET")
server.Router.HandleFunc("/posts", middlewares.SetMiddlewareJSON(server.GetPosts)).Methods("GET")

функция установленного промежуточного программного обеспечения

func SetMiddlewareJSON(next http.HandlerFunc) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "application/json")
        next(w, r)
    }
}

Как бы я объединил их в

localhost: 8080 / user / 1 / post / {id}

хранилище для проекта здесь: https://github.com/Robbie-Thomas/fullstack

1 Ответ

3 голосов
/ 31 января 2020

Вам понадобится HandlerFunc с этим путем:

server.Router.HandleFunc("/users/{userId}/post/{id}", middlewares.SetMiddlewareJSON(server.GetUsers)).Methods("GET")

В обработчике c вы получите доступ к этим переменным:

vars:=mux.Vars(request)
userId:=vars["userId"]
postId:=vars["id"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...