Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "time"
  5. "net/http"
  6. "encoding/json"
  7. "github.com/gorilla/mux"
  8. )
  9.  
  10. func main() {
  11. // router
  12. router := mux.NewRouter()
  13.  
  14. // v1 router
  15. v1router := router.PathPrefix("/v1").Subrouter()
  16. v1router.HandleFunc("/resource", createResource).Methods("GET")
  17.  
  18. // server config
  19. server := &http.Server{
  20. Addr: ":8080",
  21. ReadTimeout: time.Millisecond * 500,
  22. WriteTimeout: time.Millisecond * 100,
  23. IdleTimeout: time.Millisecond * 500,
  24. Handler: router,
  25. }
  26.  
  27. server.SetKeepAlivesEnabled(false)
  28.  
  29. // start server
  30. server.ListenAndServe()
  31. }
  32.  
  33.  
  34. type Resource struct {
  35. Id string
  36. Name string
  37. }
  38.  
  39. func createResource(response http.ResponseWriter, request *http.Request) {
  40. // connection header
  41. response.Header().Set("Connection", "close")
  42. defer request.Body.Close()
  43.  
  44. // get query params
  45. params := request.URL.Query()
  46.  
  47. // create resource
  48. resource := Resource{
  49. Id: "testid",
  50. Name: params.Get("name"),
  51. }
  52.  
  53. // convert resource to string
  54. resourceStr, _ := json.Marshal(resource)
  55.  
  56. response.WriteHeader(http.StatusOK)
  57. _, _ = response.Write([]byte(resourceStr))
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement