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") 



}



위의 프로그램에서 fmtgin 패키지를 가져옵니다.
기본 기능에서 진을 기본값으로 설정하고 포트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/웹 서비스 생성에 대한 내용입니다.

좋은 웹페이지 즐겨찾기