API 프로그래밍 및 CORS 처리 방법으로 이동합니다.
배우는 가장 좋은 방법은 가르치는 것이므로 여기 있습니다.
우리는 간단한 Go Web API를 작성할 것입니다.
이전에 웹 서비스나 API를 생성해 본 적이 있습니까?
대답이 예인 경우 이전에 이 문제를 경험한 것입니다.
처음으로 하나(API 또는 웹 서비스)를 생성하는 경우 동일한 문제에 직면하게 될 것이므로 내 프로젝트에 도움이 된 것을 보여주기 위해 여기에 있습니다.
먼저 CORS(Cross-Origin Resource Sharing)란?.
그에 대한 대답은 매우 길다.
귀하의 프로젝트가 귀하의 로컬 시스템에서는 잘 작동하지만 귀하의 프로젝트를 온라인에 업로드할 때 브라우저에서는 작동하지 않는 이유를 궁금해하는 것을 바로 그 일이라고 하겠습니다.
아직 혼란스럽습니까?
먼저 웹 서버를 작성해 보겠습니다.
우리는 gin 또는 gin-gonic이라는 go 패키지를 사용할 것입니다.
그래서 우리는 터미널에서 프로젝트를 위한 폴더를 생성합니다.
mkdir mycoolapp
파일 생성을 시작합니다.cd mycoolapp
실행 이동 모드go mod init mycoolapp
터미널에서 gin 패키지를 설치합니다.go get -u github.com/gin-gonic/gin
이제 즐겨 사용하는 코드 편집기에서 파일main.go
을 편집합니다.내 프로그램은 다음과 같습니다.
package main
//import gin package and fmt package
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
fmt.Println("My API Server")
router := gin.Default()
router.Run(":9000")
}
위의 프로그램에서
fmt
및 gin
패키지를 가져옵니다.기본 기능에서 진을 기본값으로 설정하고 포트
9000
에서 수신 대기합니다.이제 명령으로 해당 프로그램을 실행할 수 있습니다.
go run main.go
서버는 실행할 수 있어야 하지만 클라이언트에 아무 것도 반환할 수 없습니다.
핸들러를 생성하여 이를 처리합니다.
아래 코드.
package main
//import gin package and fmt package
import (
"fmt"
"github.com/gin-gonic/gin"
)
//our handler
func simpleHandler(c *gin.Context) {
c.JSON(200, gin.H{
"message": "nice service",
})
}
func main() {
fmt.Println("My news Api Server")
router := gin.Default()
router.GET("/hello", simpleHandler) //our route with handler
router.Run(":9000")
}
simpleHandler
에서 엔드포인트에 대한 GET
요청을 처리하는 기능/hello
을 추가했습니다.핸들러는 단순히 json 응답을 반환합니다.
이것은 커맨드 라인 앱에서 잘 작동합니다.
브라우저를 사용하여 작동하는 프런트 엔드 클라이언트 생성을 시작하면 실패할 수 있습니다.
그럼 이런 오류가 뜹니다
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
운 좋게도 이러한 문제가 발생하면 해결 방법이 있습니다.
패키지
"github.com/gin-contrib/cors"
이 문제를 쉽게 해결합니다.우리는 그것을 실행하여 설치
go get "github.com/gin-contrib/cors"
main.go
파일을 업데이트하겠습니다.package main
//import gin package and fmt package
import (
"fmt"
"github.com/gin-contrib/cors" //import cors package
"github.com/gin-gonic/gin"
)
//our handler
func simpleHandler(c *gin.Context) {
c.JSON(200, gin.H{
"message": "nice service",
})
}
func main() {
fmt.Println("My news Api Server")
router := gin.Default()
config := cors.Default() //set up default cors config
router.Use(config) //use cors with our router
router.GET("/hello", simpleHandler) //our route with handler
router.Run(":9000")
}
파일을 가져와서 업데이트했습니다.
github.com/gin-contrib/cors
패키지.기본값으로 설정
config := cors.Default()
그런 다음 라우터와 함께 사용했습니다.router.Use(config)
.브라우저에서 더 이상 CORS 오류가 발생하지 않습니다.
즐기다.
다음 포스팅은 뉴스 API/웹 서비스 생성에 대한 내용입니다.
Reference
이 문제에 관하여(API 프로그래밍 및 CORS 처리 방법으로 이동합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pbelx/go-programming-apis-and-how-i-handle-cors-4fk4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)