News for hackers. Stuff that matters.
Re:API design: Which version of versioning is right for you? by segmondy on Sunday October 06, 2019 @05:57PM (#21175449)

   func metrics(w http.ResponseWriter, r *http.Request) {
   }
   func AddV1Routes(r *mux.Router) {
    r.HandleFunc("/metrics/", metrics).Methods("GET")
    r.HandleFunc("/v1func/", v1func).Methods("GET")
   }
   func AddV2Routes(r *mux.Router) {
    r.HandleFunc("/metrics/", metrics).Methods("GET")
    r.HandleFunc("/v2func/", v1func).Methods("GET")
   }


  r := mux.NewRouter()
  AddV1Routes(r.PathPrefix("/api/v1").Subrouter())
  AddV2Routes(r.PathPrefix("/api/v2").Subrouter())
  handler := c.Handler(r)
  http.ListenAndServe(":5000", handler
With a pattern like this, you can just decide which functions to group by version.
Re:API design: Which version of versioning is right for you? by dariusj18 on Monday October 07, 2019 @03:34PM (#21185030)
Or, you could just deploy a copy of each version of the code using a reverse proxy.