main.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. "github.com/gin-gonic/gin"
  4. )
  5. var DB = make(map[string]string)
  6. func main() {
  7. // Disable Console Color
  8. // gin.DisableConsoleColor()
  9. r := gin.Default()
  10. // Ping test
  11. r.GET("/ping", func(c *gin.Context) {
  12. c.String(200, "pong")
  13. })
  14. // Get user value
  15. r.GET("/user/:name", func(c *gin.Context) {
  16. user := c.Params.ByName("name")
  17. value, ok := DB[user]
  18. if ok {
  19. c.JSON(200, gin.H{"user": user, "value": value})
  20. } else {
  21. c.JSON(200, gin.H{"user": user, "status": "no value"})
  22. }
  23. })
  24. // Authorized group (uses gin.BasicAuth() middleware)
  25. // Same than:
  26. // authorized := r.Group("/")
  27. // authorized.Use(gin.BasicAuth(gin.Credentials{
  28. // "foo": "bar",
  29. // "manu": "123",
  30. //}))
  31. authorized := r.Group("/", gin.BasicAuth(gin.Accounts{
  32. "foo": "bar", // user:foo password:bar
  33. "manu": "123", // user:manu password:123
  34. }))
  35. authorized.POST("admin", func(c *gin.Context) {
  36. user := c.MustGet(gin.AuthUserKey).(string)
  37. // Parse JSON
  38. var json struct {
  39. Value string `json:"value" binding:"required"`
  40. }
  41. if c.Bind(&json) == nil {
  42. DB[user] = json.Value
  43. c.JSON(200, gin.H{"status": "ok"})
  44. }
  45. })
  46. // Listen and Server in 0.0.0.0:8080
  47. r.Run(":8080")
  48. }