Protocol Buffers 定義ファイルの準備
ファイルをコンパイルする
gRPCアクションでは、リフレクションのかわりにコンパイル済みのProtocol Buffers定義ファイルからメソッドの一覧を取得できます。
例: api.proto
ファイルをコンパイルするには、次のように protoc
コマンドに -o
オプションと --include_imports
オプションを付与して実行してください。
syntax = "proto3";
package api;
service Service {
rpc Method (Request) returns (Response) {}
}
message Request {}
message Response {
string message = 1;
}
$ protoc -o out.protoset --include_imports api.proto
protoc
によって生成された out.protoset
がコンパイル済みProtocol Buffers定義ファイルです。
このファイルをベースマキナへアップロードすることで、リフレクションを使わずにgRPCアクションを実行できます。
ファイルをアップロードする
コンパイル済みProtocol Buffers定義ファイル(以下、protosetファイル)は、API経由でベースマキナにアップロードできます。
アップロードされたprotosetファイルはバージョン管理され、過去にアップロードされたものも使用できます。
デフォルト値は、常に最新のバージョンを利用するに設定されています。
アップロード方法は下記の通りです。
protosetアップロードAPIのURL
下記URLにPOSTメソッドでリクエストを送信してください。
HTTP Header
X-Basemachina-Grpc-Api-Access-Token
ヘッダーに、gRPC APIアクセストークンを設定してください。- アクセストークンは、プロジェクトの設定の gRPC APIメニューを選択すると取得できます。
リクエストボディの形式
multipart/form-data形式で、下記の2つを送信してください。
params
: JSON形式のパラメータfile
: protosetファイル
パラメータの形式
下記項目を含んだJSONを指定してください。
- environmentId(必須)
- 環境のID。
- アップロードしたprotosetファイルを使用したい環境のIDを指定してください。
- gRPCデータソースの編集画面で、サービス情報の取得先にProtocol Buffers 定義ファイルを指定すると表示されます。

- resourceId(必須)
- gRPCデータソースのID。
- gRPCデータソースの編集画面で、サービス情報の取得先にProtocol Buffers 定義ファイルを指定すると表示されます。

- name(任意)
- protosetファイルのバージョンに付ける名前。
- 指定しなかった場合も、アップロードが行われた時間で識別可能です。

パラメータの設定例
{
"environmentId": "ccp9ee76i1ea3prs2f50",
"resourceId": "c8uo2q7kobjglbr9u6vg",
"name": "version 1"
}
アップロード例
cURLでアップロードするサンプルを掲載します。
実際に使用する場合は、 {{ }}
で囲った箇所を必要な値に置き換えて実行してください。
curl --location --request POST 'https://api.basemachina.com/v1/upload_protoset' \
--header 'X-Basemachina-Grpc-Api-Access-Token: {{ gRPC APIアクセストークン }}' \
--form 'params="{
\"environmentId\": \"{{ 環境ID }}\",
\"resourceId\": \"{{ gRPCデータソースID }}\"
}"' \
--form 'file=@"{{ protosetファイルのパス }}"'