Protocol Buffers에서 Type Script의 유형 정의 만들기
10659 단어 TypeScriptgRPCProtocol Bufferstech
전제 조건
Protocol Buffers란 무엇입니까?
구글이 개발한 인터페이스 정의 언어는 gRPC를 사용할 때 클라이언트/서버 코드를 생성하는 데 사용된다.
다음 메시지와 서비스를 통해 인터페이스를 정의합니다.
syntax = "proto3";
package Posts;
import "google/protobuf/empty.proto";
message Post {
int32 id = 1;
string title = 2;
string content = 3;
}
service Posts {
rpc GetPosts(google.protobuf.Empty) returns (GetPostsResponse) {};
}
Protocol Buffers의 Type Script 유형 정의 생성
를 사용하여 클라이언트/서버 코드가 생성될 때 TypeScript의 유형 정의와 함께 생성된 단계를 기록합니다.
ts-protoc-gen
1. 프로젝트 제작, 프로그램 라이브러리 설치에 의존
npm 프로젝트를 만들고 의존 프로그램 라이브러리를 설치합니다.
추가할 프로그램 라이브러리는 다음과 같습니다.
: Protocol Buffers의 컴파일러입니다.클라이언트/서버 코드 생성
grpc-tools : Node.js제 gRPC 클라이언트생성된 클라이언트/서버 코드에 사용
@grpc/grpc-js: Protocol Buffers의 런타임 라이브러리입니다.생성된 클라이언트/서버 코드에 사용
google-protobuf: Procetocol Buffers에서 TypeScript의 유형 정의를 생성하는 플러그인
# プロジェクト作成
$ yarn init -y
# 依存ツールのインストール
$ yarn add @grpc/grpc-js grpc-tools google-protobuf ts-protoc-gen
2. protoc 파일 추가
gRPC API 설계서로 Protocol Buffers
.proto
파일을 추가합니다.$ mkdir proto
$ touch proto/message.proto
message.소개의 내용은 다음과 같다.proto/message.proto
syntax = "proto3";
package Posts;
import "google/protobuf/empty.proto";
message Post {
int32 id = 1;
string title = 2;
string content = 3;
}
message GetPostsResponse {
repeated Post posts = 1;
}
message AddPostRequest {
Post post = 1;
}
message AddPostResponse {
Post post = 1;
}
service Posts {
rpc GetPosts(google.protobuf.Empty) returns (GetPostsResponse) {};
rpc AddPost(AddPostRequest) returns (AddPostResponse) {};
}
3 코드 생성
Protocol Buffers에서 클라이밍 서버 코드, Type Script 유형 정의를 생성합니다.
package.json
에 codegen
스크립트를 추가합니다.package.json
{
"scripts" : {
"codegen": "grpc_tools_node_protoc -I ./proto --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts --js_out=import_style=commonjs,binary:./generated --grpc_out=grpc_js:./generated --ts_out=service=grpc-node,mode=grpc-js:./generated ./proto/*.proto"
},
"dependencies": {
"@grpc/grpc-js": "^1.2.3",
"google-protobuf": "^3.14.0",
"grpc-tools": "^1.10.0",
"ts-protoc-gen": "^0.14.0"
}
}
codegen
스크립트는 grpc-tools
Protocol Buffers를 통해 클라이언트/서버 코드를 생성하도록 정의했습니다.플러그 인
protoc-gen-ts
을 지정하면 Type Script의 유형 정의와 함께 생성됩니다.각본의 상세한 내용은 여기에 있다.
grpc_tools_node_protoc -I <.protoファイルのディレクトリ> --plugin=<プラグイン名>=<プラグインのパス> --js_out=<オプション>:<クライアントコード生成先パス> --grpc_out=<オプション>:<サーバーコード生成先パス> --ts_out=<オプション>:<TypeScript型定義生成先パス> <生成元のProtocol Buffersのパス>
실행해 보세요.# 生成先ディレクトリの作成
$ mkdir generated
# コード生成スクリプトの実行
$ yarn codegen
./generated
부하들은 서버 클라이언트 코드, TypeScript의 유형 정의를 생성해야 한다.~/s/z/proto ❯❯❯ tree -I node_modules
.
├── generated
│ ├── message_grpc_pb.d.ts
│ ├── message_grpc_pb.js
│ ├── message_pb.d.ts
│ └── message_pb.js
├── package.json
├── proto
│ └── message.proto
└── yarn.lock
참고 자료
Reference
이 문제에 관하여(Protocol Buffers에서 Type Script의 유형 정의 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ryo_kawamata/articles/ts-from-protocol-buffers텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)