Skip to content

Instantly share code, notes, and snippets.

@rifki
Created October 11, 2018 22:29
Show Gist options
  • Save rifki/acb2cbd18b3b15766e34779ca0f08f50 to your computer and use it in GitHub Desktop.
Save rifki/acb2cbd18b3b15766e34779ca0f08f50 to your computer and use it in GitHub Desktop.
JSON Unmarshal into struct Example
// JSON Unmarshal into struct Example
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"github.com/gin-gonic/gin"
)
const trendingURL = "https://lapi.kumparan.com/v3.0/trending/topics"
type TrendingData struct {
Code int
Page int
Limit int
Total int
Results []struct {
_Key string
Author struct {
Id string
Name string
Username string
}
Date struct {
Create string
}
Description string
Flag struct{}
Name string
Slug string
Status string
Type string
Url string
User struct{}
Statistic struct {
Followers int
}
Position bool
_Id string
_Rev string
}
}
func main() {
route := gin.Default()
route.GET("/", func(c *gin.Context) {
page := c.Query("page")
limit := c.Query("limit")
res, _ := http.Get(trendingURL + "?limit=" + limit + "&page=" + page)
body, _ := ioutil.ReadAll(res.Body)
var trendingData TrendingData
err := json.Unmarshal(body, &trendingData)
if err != nil {
fmt.Println("There was an error bro! : ", err)
panic(err)
}
if trendingData.Code == 200 {
for i := 0; i < trendingData.Limit; i++ {
var desc = trendingData.Results[i].Description
var urlDetail = "https://kumparan.com/topic/" + trendingData.Results[i].Slug
var content = fmt.Sprintf("%s %s", desc, urlDetail)
fmt.Println(content)
}
} else {
fmt.Println("There was an error status code : ", trendingData.Code)
}
if trendingData.Code == 200 {
c.JSON(http.StatusBadGateway, gin.H{
"data": trendingData.Results,
})
} else {
c.JSON(http.StatusBadGateway, gin.H{
"results": "Website Down!",
})
}
})
route.Run(":8000")
}
@rifki
Copy link
Author

rifki commented Oct 11, 2018

output:

[GIN-debug] GET /
[GIN-debug] Listening and serving HTTP on :8000
Gempa di Donggala https://kumparan.com/topic/gempa-di-donggala
Pegawai Bank Dibunuh https://kumparan.com/topic/pegawai-bank-dibunuh
Berita Artis https://kumparan.com/topic/berita-artis
Kapitra Ampera https://kumparan.com/topic/kapitra-ampera
Konten Spesial https://kumparan.com/topic/konten-spesial
Roro Fitria Narkoba https://kumparan.com/topic/roro-fitria-narkoba
Penyanyi dangdut jebolan DA https://kumparan.com/topic/evie-masamba
Rumah DP Rp 0 https://kumparan.com/topic/rumah-dp-rp-0
Ruben Onsu https://kumparan.com/topic/ruben-onsu
Ketua Umum Gerindra https://kumparan.com/topic/prabowo-subianto
[GIN] 2018/10/12 - 05:29:02 | 502 | 873.545861ms | ::1 | GET /?limit=10&page=1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment