ベースマキナ ドキュメント

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アクセストークンを設定してください。

リクエストボディの形式

multipart/form-data形式で、下記の2つを送信してください。

  • params: JSON形式のパラメータ
  • file: protosetファイル

パラメータの形式

下記項目を含んだJSONを指定してください。

  • environmentId(必須)
    • 環境のID。
    • アップロードしたprotosetファイルを使用したい環境のIDを指定してください。
    • gRPCデータソースの編集画面で、サービス情報の取得先Protocol Buffers 定義ファイルを指定すると表示されます。
環境ID
  • resourceId(必須)
    • gRPCデータソースのID。
    • gRPCデータソースの編集画面で、サービス情報の取得先Protocol Buffers 定義ファイルを指定すると表示されます。
データソースID
  • name(任意)
    • protosetファイルのバージョンに付ける名前。
    • 指定しなかった場合も、アップロードが行われた時間で識別可能です。
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ファイルのパス }}"'