Golang 데이터 커넥터 1부
4054 단어 go
소개
서로 다른 시스템을 함께 연결하는 Zapier(방금 a $5 billion valuation를 쳤음)와 같은 몇 가지 도구가 있습니다. 흥미로운 아이디어이지만 실제로 Zapier 없이 어떻게 커넥터(또는 통합)를 생성합니까? 이 게시물 시리즈에서는 무언가를 구축하는 방법을 단계별로 설명합니다.
으스스해지기
Ghost 블로그에서 다른 서비스로 데이터를 옮기고 싶다고 가정해 봅시다. 충분히 간단하게 들립니다. 이 게시물에서는 지속적인 연결에 대해 걱정하지 않고 A지점에서 콘텐츠를 가져올 것입니다. 다음에는 B지점에 대해 걱정하겠습니다.
좋습니다. 좋습니다. 하지만 어디서부터 시작해야 할까요? 시작하기 가장 좋은 곳은 https://ghost.org/docs/content-api/ 에 있는 Ghost 콘텐츠 API 설명서입니다. 이렇게 하면 계획을 시작하는 데 필요한 모든 정보를 얻을 수 있습니다.
content/posts
에서 호출할 수 있는 라이브https://demo.ghost.io/ghost/api/v4/content/posts/?key=22444f78447824223cefc48062
엔드포인트도 있으며, 이를 통해 우리가 무엇을 받을 수 있는지 알 수 있습니다.가서 가져와
이 간단한 커넥터의 1단계는 Go
http
패키지 덕분에 상대적으로 쉽습니다. 게시물 콘텐츠의 첫 번째 페이지에 연락하여 요청하는 데 사용합니다. 새 요청을 생성하여 시작하겠습니다. 전체 코드 목록은 이 게시물 하단에 있습니다. req, err := http.NewRequest(http.MethodGet, "https://demo.ghost.io/ghost/api/v4/content/posts/?key=22444f78447824223cefc48062", nil)
http.NewRequest
는 HTTP 요청의 메서드를 가져오며, 이 경우에는 GET
, 요청의 URL 및 본문입니다. 이번에는 몸체가 없으므로 nil
를 사용하겠습니다. 좋습니다. 요청이 모두 설정되었지만 어떻게 사용합니까? 다시 http
로 돌아가서 http.DefaultClient
메서드Do()
를 사용하여 실제로 요청을 할 수 있습니다. 우리는 단순히 요청을 전달하고 새 변수에서 응답을 캡처합니다. resp, err := http.DefaultClient.Do(req)
그리고 그게 다야! 통화가 정상인 한 데이터가 있습니다. 우리는 실제로 오류가 있는 작업을 수행하지 않고 대신 구제 조치를 취할 것입니다. 그냥 종료하는 대신 일종의 재시도를 할 수 있다고 생각합니다.
여기에서 응답 본문을 콘솔에 기록합니다.
body, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
다음번
다음 게시물에서는 받은 데이터로 실제로 무언가를 할 수 있도록 프로젝트를 수정할 것입니다.
이 게시물이 마음에 드십니까?
How about buying me a coffee?
코드 목록
package main
import (
"encoding/json"
"fmt"
"io"
"log"
"net/http"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://demo.ghost.io/ghost/api/v4/content/posts/?key=22444f78447824223cefc48062", nil)
if err != nil {
log.Fatal(err)
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}
Reference
이 문제에 관하여(Golang 데이터 커넥터 1부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shindakun/golang-data-connector-part-1-5a5f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)