프레임 "GIN"사용 시도(요청 매개 변수)
매개변수 가져오기
다음 형식에서 파라미터를 얻다
http://localhost:8080/hello?name=Taro
http://localhost:8080/hello/Ziro
http://localhost:8080/api/hello?name=Saburo
http://localhost:8080/api/hello/Shiro
폴더 구성 .
├── main.go
├── asset
│ └── css
│ └── style.css
├── templates
│ ├── hello.html
│ └── layout.html
└── routes
├── routes.go
└── api.go
MAIN
main.gopackage main
import (
"routes"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 事前にテンプレートをロード 相対パス
// router.LoadHTMLGlob("templates/*/**") などもいけるらしい
router.LoadHTMLGlob("templates/*.html")
// 静的ファイルのパスを指定
router.Static("/assets", "./assets")
// ハンドラの指定
router.GET("/hello", routes.Hello)
router.GET("/hello/:name", routes.HelloParam)
// グルーピング
user := router.Group("/api")
{
user.GET("/hello", routes.HelloJson)
user.GET("/hello/:name", routes.HelloJsonPram)
}
router.NoRoute(routes.NoRoute) // どのルーティングにも当てはまらなかった場合に処理
router.Run(":8080")
}
처리 프로그램
routes/routes.gopackage routes
import (
"net/http"
"github.com/gin-gonic/gin"
)
func Hello(c *gin.Context) {
name := c.DefaultQuery("name", "HOGE") // HOGEはデフォルト値?
//name := c.Query("lastname") // デフォルトがない場合
c.HTML(http.StatusOK, "layout.html", gin.H{
"name": name,
})
}
func HelloParam(c *gin.Context) {
name := c.Param("name")
c.HTML(http.StatusOK, "layout.html", gin.H{
"name": name,
})
}
func NoRoute(c *gin.Context) {
// helloに飛ばす
c.Redirect(http.StatusMovedPermanently, "/hello")
}
routes/api.gopackage routes
import (
"github.com/gin-gonic/gin"
)
func HelloJson(c *gin.Context) {
name := c.DefaultQuery("name", "HOGE") // HOGEはデフォルト値?
//name := c.Query("lastname") // デフォルトがない場合
c.JSON(200, gin.H{
"name": name,
})
}
func HelloJsonPram(c *gin.Context) {
name := c.Param("name")
c.JSON(200, gin.H{
"name": name,
})
}
템플릿 파일
templates/layouts.html<html>
<head>
<link rel="stylesheet" href="assets/css/style.css">
<title>Sample</title>
</head>
<body>
<!-- Render the current template here -->
{{template "content" .}}
</body>
</html>
templates/hello.html{{define "content"}}
<h2>Hello {{.name}}!</h2>
{{end}}
스타일 시트
assets/css/style.cssh2 {
color: red;
}
실행 결과
http://localhost:8080/hello
기본 "HOGE"표시
http://localhost:8080/hello?name=Taro
http://localhost:8080/hello/Ziro
왠지 스타일시트가 안 어울려요.
http://localhost:8080/api/hello?name=Saburo
http://localhost:8080/api/hello/Shiro
Reference
이 문제에 관하여(프레임 "GIN"사용 시도(요청 매개 변수)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koshi_an/items/872a6faf7266dbb6369c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
.
├── main.go
├── asset
│ └── css
│ └── style.css
├── templates
│ ├── hello.html
│ └── layout.html
└── routes
├── routes.go
└── api.go
MAIN
main.gopackage main
import (
"routes"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 事前にテンプレートをロード 相対パス
// router.LoadHTMLGlob("templates/*/**") などもいけるらしい
router.LoadHTMLGlob("templates/*.html")
// 静的ファイルのパスを指定
router.Static("/assets", "./assets")
// ハンドラの指定
router.GET("/hello", routes.Hello)
router.GET("/hello/:name", routes.HelloParam)
// グルーピング
user := router.Group("/api")
{
user.GET("/hello", routes.HelloJson)
user.GET("/hello/:name", routes.HelloJsonPram)
}
router.NoRoute(routes.NoRoute) // どのルーティングにも当てはまらなかった場合に処理
router.Run(":8080")
}
처리 프로그램
routes/routes.gopackage routes
import (
"net/http"
"github.com/gin-gonic/gin"
)
func Hello(c *gin.Context) {
name := c.DefaultQuery("name", "HOGE") // HOGEはデフォルト値?
//name := c.Query("lastname") // デフォルトがない場合
c.HTML(http.StatusOK, "layout.html", gin.H{
"name": name,
})
}
func HelloParam(c *gin.Context) {
name := c.Param("name")
c.HTML(http.StatusOK, "layout.html", gin.H{
"name": name,
})
}
func NoRoute(c *gin.Context) {
// helloに飛ばす
c.Redirect(http.StatusMovedPermanently, "/hello")
}
routes/api.gopackage routes
import (
"github.com/gin-gonic/gin"
)
func HelloJson(c *gin.Context) {
name := c.DefaultQuery("name", "HOGE") // HOGEはデフォルト値?
//name := c.Query("lastname") // デフォルトがない場合
c.JSON(200, gin.H{
"name": name,
})
}
func HelloJsonPram(c *gin.Context) {
name := c.Param("name")
c.JSON(200, gin.H{
"name": name,
})
}
템플릿 파일
templates/layouts.html<html>
<head>
<link rel="stylesheet" href="assets/css/style.css">
<title>Sample</title>
</head>
<body>
<!-- Render the current template here -->
{{template "content" .}}
</body>
</html>
templates/hello.html{{define "content"}}
<h2>Hello {{.name}}!</h2>
{{end}}
스타일 시트
assets/css/style.cssh2 {
color: red;
}
실행 결과
http://localhost:8080/hello
기본 "HOGE"표시
http://localhost:8080/hello?name=Taro
http://localhost:8080/hello/Ziro
왠지 스타일시트가 안 어울려요.
http://localhost:8080/api/hello?name=Saburo
http://localhost:8080/api/hello/Shiro
Reference
이 문제에 관하여(프레임 "GIN"사용 시도(요청 매개 변수)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koshi_an/items/872a6faf7266dbb6369c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package main
import (
"routes"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 事前にテンプレートをロード 相対パス
// router.LoadHTMLGlob("templates/*/**") などもいけるらしい
router.LoadHTMLGlob("templates/*.html")
// 静的ファイルのパスを指定
router.Static("/assets", "./assets")
// ハンドラの指定
router.GET("/hello", routes.Hello)
router.GET("/hello/:name", routes.HelloParam)
// グルーピング
user := router.Group("/api")
{
user.GET("/hello", routes.HelloJson)
user.GET("/hello/:name", routes.HelloJsonPram)
}
router.NoRoute(routes.NoRoute) // どのルーティングにも当てはまらなかった場合に処理
router.Run(":8080")
}
routes/routes.go
package routes
import (
"net/http"
"github.com/gin-gonic/gin"
)
func Hello(c *gin.Context) {
name := c.DefaultQuery("name", "HOGE") // HOGEはデフォルト値?
//name := c.Query("lastname") // デフォルトがない場合
c.HTML(http.StatusOK, "layout.html", gin.H{
"name": name,
})
}
func HelloParam(c *gin.Context) {
name := c.Param("name")
c.HTML(http.StatusOK, "layout.html", gin.H{
"name": name,
})
}
func NoRoute(c *gin.Context) {
// helloに飛ばす
c.Redirect(http.StatusMovedPermanently, "/hello")
}
routes/api.gopackage routes
import (
"github.com/gin-gonic/gin"
)
func HelloJson(c *gin.Context) {
name := c.DefaultQuery("name", "HOGE") // HOGEはデフォルト値?
//name := c.Query("lastname") // デフォルトがない場合
c.JSON(200, gin.H{
"name": name,
})
}
func HelloJsonPram(c *gin.Context) {
name := c.Param("name")
c.JSON(200, gin.H{
"name": name,
})
}
템플릿 파일
templates/layouts.html<html>
<head>
<link rel="stylesheet" href="assets/css/style.css">
<title>Sample</title>
</head>
<body>
<!-- Render the current template here -->
{{template "content" .}}
</body>
</html>
templates/hello.html{{define "content"}}
<h2>Hello {{.name}}!</h2>
{{end}}
스타일 시트
assets/css/style.cssh2 {
color: red;
}
실행 결과
http://localhost:8080/hello
기본 "HOGE"표시
http://localhost:8080/hello?name=Taro
http://localhost:8080/hello/Ziro
왠지 스타일시트가 안 어울려요.
http://localhost:8080/api/hello?name=Saburo
http://localhost:8080/api/hello/Shiro
Reference
이 문제에 관하여(프레임 "GIN"사용 시도(요청 매개 변수)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koshi_an/items/872a6faf7266dbb6369c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<html>
<head>
<link rel="stylesheet" href="assets/css/style.css">
<title>Sample</title>
</head>
<body>
<!-- Render the current template here -->
{{template "content" .}}
</body>
</html>
{{define "content"}}
<h2>Hello {{.name}}!</h2>
{{end}}
assets/css/style.css
h2 {
color: red;
}
실행 결과
http://localhost:8080/hello
기본 "HOGE"표시
http://localhost:8080/hello?name=Taro
http://localhost:8080/hello/Ziro
왠지 스타일시트가 안 어울려요.
http://localhost:8080/api/hello?name=Saburo
http://localhost:8080/api/hello/Shiro
Reference
이 문제에 관하여(프레임 "GIN"사용 시도(요청 매개 변수)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koshi_an/items/872a6faf7266dbb6369c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(프레임 "GIN"사용 시도(요청 매개 변수)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koshi_an/items/872a6faf7266dbb6369c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)