티스토리 뷰
Go Workspace 설정
Go 1.11 버전 이상에서는 모듈을 사용하는 것을 권장합니다. 프로젝트 디렉토리를 생성하고, 그 안에서 go mod init 명령을 사용하여 모듈을 초기화합니다.
mkdir myproject
cd myproject
go mod init myproject
Go Kit 설치 및 설정
Go Kit 설치
go get github.com/go-kit/kit
Go Kit은 일반적으로 go get 명령어를 사용하여 설치합니다. 설치는 다음과 같이 진행됩니다:
예제 프로젝트 설정
아래는 Go Kit을 사용한 간단한 예제 프로젝트를 설정하는 방법입니다.
프로젝트 구조:
myproject/
├── go.sum
├── go.mod
├── main.go
└── README.md
main.go 파일 작성
package main
import (
"context"
"encoding/json"
"errors"
"fmt"
"log"
"net/http"
"strings"
"github.com/go-kit/kit/endpoint"
httptransport "github.com/go-kit/kit/transport/http"
)
// StringService provides operations on strings.
type StringService interface {
Uppercase(string) (string, error)
}
// stringService is a concrete implementation of StringService.
type stringService struct{}
func (stringService) Uppercase(s string) (string, error) {
if s == "" {
return "", errors.New("empty string")
}
return strings.ToUpper(s), nil
}
func makeUppercaseEndpoint(svc StringService) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (interface{}, error) {
req := request.(uppercaseRequest)
v, err := svc.Uppercase(req.S)
if err != nil {
return uppercaseResponse{v, err.Error()}, nil
}
return uppercaseResponse{v, ""}, nil
}
}
type uppercaseRequest struct {
S string `json:"s"`
}
type uppercaseResponse struct {
V string `json:"v"`
Err string `json:"err,omitempty"`
}
func main() {
svc := stringService{}
uppercaseHandler := httptransport.NewServer(
makeUppercaseEndpoint(svc),
decodeUppercaseRequest,
encodeResponse,
)
http.Handle("/uppercase", uppercaseHandler)
fmt.Println("Listening on port 8080...")
log.Fatal(http.ListenAndServe(":8080", nil))
}
func decodeUppercaseRequest(_ context.Context, r *http.Request) (interface{}, error) {
var request uppercaseRequest
if err := json.NewDecoder(r.Body).Decode(&request); err != nil {
return nil, err
}
return request, nil
}
func encodeResponse(_ context.Context, w http.ResponseWriter, response interface{}) error {
return json.NewEncoder(w).Encode(response)
}
애플리케이션 실행
프로젝트 디렉토리에서 애플리케이션을 실행합니다.
go run main.go
서버가 실행되면, http://localhost:8080/uppercase 엔드포인트로 POST 요청을 보내어 서비스를 테스트할 수 있습니다.
// 요청
curl -X POST http://localhost:8080/uppercase -d '{"s":"hello"}' -H "Content-Type: application/json"
// 응답
{"v":"HELLO"}
출처 : chatGPT
'go' 카테고리의 다른 글
Go Kit 사용자 정보 등록/수정/삭제/조회 예제 - DB (0) | 2024.07.18 |
---|---|
Go Kit 사용자 정보 등록/수정/삭제/조회 예제 (0) | 2024.07.18 |
Go kit 프레임워크 (0) | 2024.07.17 |
Go 삭제 후 Homebrew로 설치하기(go kit 설치) (0) | 2024.07.17 |
GO sql db 처리 (0) | 2024.07.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- UI
- cache
- listToMap
- Javascript
- 스프링부트
- 예제
- springboot
- REST
- 샘플
- mapToList
- AG-GRID
- oracle
- 메시지
- lombok
- 타임리프
- thymeleaf
- 스프링
- SHEETJS
- example
- 설정
- ag grid
- 엑셀
- java
- RESTful
- Spring Boot
- spring
- restful서비스
- mybatis
- 그리드
- sample
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함