RevelにJsonAPIを追加する
/api/today というJsonAPIを追加してみる
仕様
GETリクエストを送ると現在日時を返す
JSONイメージ
code:json
{
"now":"2019/07/01",
"year":2019,
"month":7,
"day":1
}
実装
app/controllersにAPIを追加する
今回はAppとは別のルートになるので、新しくApiという構造体を定義する
code:app/controllers/api.go
package controllers
import (
"time"
"github.com/revel/revel"
)
type Api struct {
*revel.Controller
}
type Date struct {
Today string json:"today"
Year int json:"year"
Month int json:"month"
Day int json:"day"
}
func (c Api) Today() revel.Result {
now := time.Now()
today := now.Format("2006/01/02")
year := now.Year()
month := int(now.Month())
day := now.Day()
resp := Date{
Today: today,
Year: year,
Month: month,
Day: day,
}
return c.RenderJSON(resp)
}
conf/routesにもルーティングを追加する
code:conf/routes
GET / App.Index
GET /App/Hello App.Hello
GET /Api/Today Api.Today
これでrevelを再起動する
{
"today": "2019/07/23",
"year": 2019,
"month": 7,
"day": 23
}
結果が得られた