goctl 빠른 시작
goctl 빠른 시작 directive
섹션 제목: “goctl 빠른 시작 directive”$ goctl quickstart --helpquickly start a project
Usage: goctl quickstart [flags]
Flags: -h, --help help for quickstart -t, --service-type string specify the service type, supported values: [mono, micro] (default "mono")| service-type | string | 없음 | mono | 이 항목은 해당 기능의 사용 방법, 설정, 주의 사항을 설명합니다. |
生成单体服务
경우 mono type은 selected, goctl 생성합니다 minimized HTTP 서비스과 starts HTTP service입니다.
1 생성 code
# 예시입니다$ cd ~
# mkdir$ mkdir quickstart && cd quickstart
# 예시입니다$ goctl quickstart --service-type monogo: creating new go.mod: module greet>> Generating quickstart api project...Done.>> go mod tidygo: finding module for package github.com/zeromicro/go-zero/core/logxgo: finding module for package github.com/zeromicro/go-zero/restgo: finding module for package github.com/zeromicro/go-zero/rest/httpxgo: finding module for package github.com/zeromicro/go-zero/core/confgo: found github.com/zeromicro/go-zero/core/conf in github.com/zeromicro/go-zero v1.4.3go: found github.com/zeromicro/go-zero/rest in github.com/zeromicro/go-zero v1.4.3go: found github.com/zeromicro/go-zero/rest/httpx in github.com/zeromicro/go-zero v1.4.3go: found github.com/zeromicro/go-zero/core/logx in github.com/zeromicro/go-zero v1.4.3>> Ready to start an API server...>> Run 'curl http://127.0.0.1:8888/ping' after service startup...Starting server at 127.0.0.1:8888...2curl
새로운 terminal, execute curl 테스트
$ curl -i http://127.0.0.1:8888/pingHTTP/1.1 200 OKContent-Type: application/json; charset=utf-8Traceparent: 00-2102678b8c7c5906b792c618b054c9a1-60194e95cceff37f-00Date: Fri, 06 Jan 2023 08:52:30 GMTContent-Length: 14
{"msg":"pong"}%生成微服务
1Generate 서비스
# 예시입니다$ cd ~
# mkdir$ mkdir quickstart && cd quickstart
# 예시입니다$ goctl quickstart --service-type microDetected that the "/Users/keson/quickstart/greet" already exists, do you clean up? [y: YES, n: NO]: yClean workspace...go: creating new go.mod: module greet>> Generating quickstart zRPC project...[goctl-env]: preparing to check env
[goctl-env]: looking up "protoc"[goctl-env]: "protoc" is installed
[goctl-env]: looking up "protoc-gen-go"[goctl-env]: "protoc-gen-go" is installed
[goctl-env]: looking up "protoc-gen-go-grpc"[goctl-env]: "protoc-gen-go-grpc" is installed
[goctl-env]: congratulations! your goctl environment is ready![command]: protoc greet.proto --go_out . --go-grpc_out .Done.>> Generating quickstart api project...Done.>> go mod tidygo: finding module for package github.com/zeromicro/go-zero/core/confgo: finding module for package github.com/zeromicro/go-zero/core/logxgo: finding module for package github.com/zeromicro/go-zero/core/servicego: finding module for package google.golang.org/grpc/reflectiongo: finding module for package github.com/zeromicro/go-zero/zrpcgo: finding module for package github.com/zeromicro/go-zero/restgo: finding module for package github.com/zeromicro/go-zero/rest/httpxgo: finding module for package google.golang.org/grpcgo: finding module for package google.golang.org/grpc/codesgo: finding module for package google.golang.org/grpc/statusgo: finding module for package google.golang.org/protobuf/reflect/protoreflectgo: finding module for package google.golang.org/protobuf/runtime/protoimplgo: found github.com/zeromicro/go-zero/core/conf in github.com/zeromicro/go-zero v1.4.3go: found github.com/zeromicro/go-zero/rest in github.com/zeromicro/go-zero v1.4.3go: found github.com/zeromicro/go-zero/rest/httpx in github.com/zeromicro/go-zero v1.4.3go: found github.com/zeromicro/go-zero/core/logx in github.com/zeromicro/go-zero v1.4.3go: found github.com/zeromicro/go-zero/zrpc in github.com/zeromicro/go-zero v1.4.3go: found github.com/zeromicro/go-zero/core/service in github.com/zeromicro/go-zero v1.4.3go: found google.golang.org/grpc in google.golang.org/grpc v1.51.0go: found google.golang.org/grpc/reflection in google.golang.org/grpc v1.51.0go: found google.golang.org/grpc/codes in google.golang.org/grpc v1.51.0go: found google.golang.org/grpc/status in google.golang.org/grpc v1.51.0go: found google.golang.org/protobuf/reflect/protoreflect in google.golang.org/protobuf v1.28.1go: found google.golang.org/protobuf/runtime/protoimpl in google.golang.org/protobuf v1.28.1>> Ready to start a zRPC server...>> Ready to start an API server...>> Run 'curl http://127.0.0.1:8888/ping' after service startup...Starting rpc server at 127.0.0.1:8080...Starting server at 127.0.0.1:8888...2curl
새로운 terminal과 execute curl 테스트
$ curl -i http://127.0.0.1:8888/pingHTTP/1.1 200 OKContent-Type: application/json; charset=utf-8Traceparent: 00-b7c7bd5b28a49ab97960ed83d2888f1a-4da22e03825041e7-00Date: Fri, 06 Jan 2023 08:55:33 GMTContent-Length: 14
{"msg":"pong"}