DEV Community

Cover image for クレヤとは?
Akira
Akira

Posted on • Originally published at apidog.com

クレヤとは?

gRPCサービスを扱う開発者なら、一般的なAPIクライアントではストリーミングやproto管理が扱いづらい場面があります。KreyaはREST中心のツールにgRPCを追加したものではなく、gRPCを中核に据えたデスクトップAPIクライアントです。

今すぐApidogを試す

この記事では、Kreyaで何ができるのか、gRPC APIをどう読み込み・実行するのか、プロジェクトをGitでどう管理できるのか、どのようなチームに向いているのかを実装目線で整理します。

なお、ここで扱うKreyaはriok GmbHが開発するAPIクライアントで、kreya.appで提供されている製品です。同名のファッションブランドやビューティーブランドとは関係ありません。

Kreyaとは?

Kreyaは、スイスのソフトウェア会社riok GmbHが開発するデスクトップGUI APIクライアントです。APIの呼び出し、検証、テストをGUIから実行できます。

対応プロトコルは以下です。

  • gRPC
  • REST
  • GraphQL
  • WebSocket
  • Server-Sent Events

macOS、Windows、Linux向けのネイティブデスクトップアプリとして提供されます。ブラウザ版ではなく、クラウドアカウントなしでも利用できます。インストール後、ローカル環境からすぐにAPIを呼び出せます。

Kreyaはフリーミアムモデルのプロプライエタリソフトウェアです。基本的なクライアント機能は無料で利用でき、有料プランではスクリプティング、スナップショットテスト、チーム向け機能などが追加されます。

gRPCファーストで使う

多くのAPIクライアントはRESTを起点にして、後からgRPC対応を追加しています。一方、KreyaはgRPCサポートが中心に設計されています。

gRPCサービスを読み込む方法は主に2つです。

  1. .protoファイルを直接インポートする
  2. gRPC Server Reflectionを使って、実行中のサーバーからサービス定義を取得する

Server Reflectionを有効にしている場合、手元に常にprotoファイルを置く必要はありません。Kreyaがサーバーからサービス定義を読み取り、呼び出し可能なメソッドとして表示します。

gRPC in Kreya

Kreyaは以下のgRPC呼び出しタイプに対応しています。

  • Unary
  • Client streaming
  • Server streaming
  • Bidirectional streaming

実装時には、単純なUnary RPCだけでなく、ログ配信、チャット、リアルタイム同期などのストリーミングAPIもGUIから確認できます。

gRPCはHTTP/2を前提としますが、KreyaはHTTP/2に対応しています。また、HTTP/1.1とHTTP/3もサポートしています。

gRPCの基本やテスト方法を確認したい場合は、以下も参考になります。

REST、GraphQL、WebSocketも同じツールで扱う

KreyaはgRPCに強いツールですが、gRPC専用ではありません。日常的なバックエンド開発で使う主要なプロトコルも同じワークスペースで扱えます。

REST APIを呼び出す

RESTでは、HTTPメソッド、ヘッダー、クエリパラメータ、リクエストボディを設定してリクエストを送信します。

たとえば、次のようなAPIを検証できます。

GET /users?limit=20
Authorization: Bearer <token>
Accept: application/json
Enter fullscreen mode Exit fullscreen mode

レスポンスのステータスコード、ヘッダー、JSONボディを確認しながら、実装やデバッグを進められます。

REST APIクライアント全般については、REST APIクライアントの概要も参考になります。

GraphQLを実行する

GraphQLでは、エンドポイントに対してクエリやミューテーションを送信し、構造化されたレスポンスを確認します。

例:

query GetUser($id: ID!) {
  user(id: $id) {
    id
    name
    email
  }
}
Enter fullscreen mode Exit fullscreen mode

GraphQL中心の開発をしている場合は、最高のGraphQLクライアントも比較材料になります。

WebSocketとSSEを確認する

リアルタイム機能では、WebSocketとServer-Sent Eventsを使う場面があります。

  • WebSocket: 双方向通信
  • Server-Sent Events: サーバーからクライアントへの一方向ストリーム

チャット、通知、ライブデータ配信、イベント購読の検証に使えます。

REST、GraphQL、gRPCの選び方で迷う場合は、REST vs GraphQL vs gRPCの比較が参考になります。

オフライン、プライバシーファースト、Git管理

Kreyaの特徴は、クラウド前提ではなくローカルファーストで使える点です。これは、社内ネットワーク、機密API、規制のある環境で特に重要です。

完全オフラインで動作する

Kreyaはローカルマシン上で動作します。APIリクエスト、環境設定、レスポンスはローカルに保持されます。

そのため、次のような環境でも使いやすいです。

  • インターネット接続が制限された開発環境
  • VPN内の内部API
  • 顧客データや機密データを扱う検証環境
  • クラウド同期を許可しない企業ネットワーク

オフラインAPIクライアントの選択肢については、最高のオフラインAPIクライアントも参考になります。

データをローカルに保持する

Kreyaは、デフォルトでAPIデータをローカルに保存します。リクエストボディや環境変数をクラウドサービスに送信する前提ではありません。

Kreyaは自らをプライバシーファーストと位置づけており、オフライン設計がその前提を支えています。Enterprise向けには、アカウントを使えない環境のためのオフラインライセンスオプションも用意されています。

JSONファイルをGitで管理する

Kreyaはプロジェクトをディスク上の構造化されたJSONファイルとして保存します。これにより、APIリクエストや設定をGitで管理できます。

実務では、次のようなワークフローが可能です。

git add kreya-project/
git commit -m "Add user service gRPC requests"
git push origin feature/add-user-api-tests
Enter fullscreen mode Exit fullscreen mode

APIリクエストの変更はプルリクエストでレビューできます。

git diff
Enter fullscreen mode Exit fullscreen mode

変更が問題だった場合は、通常のコードと同じように戻せます。

git revert <commit>
Enter fullscreen mode Exit fullscreen mode

Kreyaは、GitネイティブAPIクライアントと同じカテゴリに入ります。すでにGit中心で開発しているチームなら、APIリクエストもリポジトリに含めやすくなります。

テストと自動化

KreyaはAPIを手動で呼び出すだけでなく、テストと自動化にも対応しています。

主な用途は以下です。

  • レスポンスの検証
  • JavaScriptによるテストスクリプト
  • データ駆動テスト
  • スナップショットテスト
  • CLIによるCI実行
  • JUnitスタイルのレポート出力

JavaScriptでレスポンスを検証する

Kreyaでは、JavaScriptでテストを書き、レスポンスを検証できます。

たとえば、REST APIで次のような観点を確認します。

// 例: ステータスコードやレスポンスフィールドを検証するイメージ
expect(response.status).toBe(200)
expect(response.body.id).toBeDefined()
expect(response.body.email).toContain("@")
Enter fullscreen mode Exit fullscreen mode

これにより、手動確認を再現可能なテストに変換できます。

スナップショットテストで破壊的変更を検出する

スナップショットテストでは、ある時点のレスポンスをベースラインとして保存します。次回実行時にライブレスポンスと比較し、差分があれば検出します。

これは特に以下の確認に向いています。

  • レスポンスフィールドが消えていないか
  • 型や構造が変わっていないか
  • 互換性のないAPI変更が混入していないか

API契約の意図しない変更を、リリース前に見つけやすくなります。

CIで実行する

KreyaはCLI自動化とJUnitスタイルのレポートに対応しています。保存済みテストをCIパイプラインで実行し、結果をCIダッシュボードに連携できます。

一般的な流れは以下です。

  1. ローカルでKreyaプロジェクトを作成する
  2. リクエストとテストを保存する
  3. プロジェクトをGitにコミットする
  4. CIでKreya CLIを実行する
  5. JUnitレポートをCIに取り込む

これにより、ローカルで作成したAPI検証をビルドパイプラインに組み込めます。

フリーミアムモデル

Kreyaは3つのティアで提供されています。料金は変更される可能性があるため、導入前に公式のKreya料金ページを確認してください。

Free

無料プランは永続的に無料です。主に以下をカバーします。

  • gRPC
  • REST
  • GraphQL
  • WebSocket
  • 基本的な認証

個人開発、API探索、日常的なリクエスト検証であれば、無料プランで始められます。

Pro

Proプランは個人向けです。高度な機能が追加されます。

  • スクリプティング
  • スナップショットテスト
  • コレクション
  • リクエスト履歴
  • メールサポート

APIテストを継続的に使う場合は、このプランが候補になります。

Enterprise

Enterpriseプランは企業向けです。

  • 優先サポート
  • 顧客ポータル
  • 無制限ユーザー向けの定額料金
  • オフラインライセンスオプション

アカウント利用が制限される環境や、厳格な社内ルールがある組織向けです。

Kreyaが向いているチーム

Kreyaは次のような開発者やチームに向いています。

  • gRPCを多用するバックエンド開発者

    Server Reflection、protoインポート、4種類のストリーミング呼び出しに対応しているため、gRPC中心の開発と相性が良いです。

  • オフライン環境でAPIを検証したいチーム

    クラウド同期に依存せず、ローカルマシン上で作業できます。

  • APIリクエストをGitでレビューしたいチーム

    JSONファイルとして保存されるため、プルリクエストで差分確認できます。

  • 複数プロトコルを扱うチーム

    gRPC、REST、GraphQL、WebSocket、SSEを1つのデスクトップアプリで扱えます。

一方で、ホスト型のブラウザベースワークスペースや、チーム全体で共有するクラウドドキュメントを重視する場合は、Kreyaのデスクトップファースト設計が合わない可能性があります。

Mac、Windows、WebをまたいだAPIクライアント選定については、Mac、Windows、Web向けの比較も参考になります。

Apidogとの違い

Kreyaは、gRPCに強く、ローカルファーストで、プライバシー重視のAPIクライアントです。デスクトップアプリからAPIを呼び出し、テストし、Gitで管理したい場合に適しています。

一方で、一部のチームはAPIクライアント以上の機能を必要とします。

たとえば、次のような作業です。

  • API設計
  • バックエンド実装前のモック
  • 自動テスト
  • APIドキュメント生成
  • チームでのリアルタイム共同作業
  • APIライフサイクル全体の管理

Apidogは、この広い範囲をカバーするオールインワンAPIプラットフォームです。

Kreyaと同様に、Apidogも以下を扱えます。

さらに、Apidogには以下の機能があります。

  • ビジュアルなOpenAPIデザイナー
  • Apidog CLIによるCI/CD向け自動テスト
  • スマートモック
  • 自動生成されるインタラクティブなAPIドキュメント
  • 共有チームワークスペース
  • Windows、Mac、Linux向けデスクトップアプリ
  • Webアプリ
  • CLI

Apidog

トレードオフは明確です。

Kreyaは軽量で、デフォルトでオフラインファーストです。ローカルでAPIを呼び出し、gRPCを深く扱いたいチームに向いています。

Apidogは、APIクライアントに加えて、設計、モック、テスト、ドキュメント、コラボレーションまで1か所で扱いたいチームに向いています。

比較検討する場合は、Postmanの代替優れたAPIクライアントの一覧も参考になります。

よくある質問

Kreyaは無料ですか?

はい。Kreyaには、gRPC、REST、GraphQL、WebSocket、基本的な認証をカバーする永続無料プランがあります。ProとEnterpriseでは、スクリプティング、スナップショットテスト、チーム向け機能などが追加されます。

Kreyaはオープンソースですか?

いいえ。Kreyaはriok GmbHが開発するプロプライエタリソフトウェアです。無料プランはありますが、ソースコードは公開されていません。

オープンソースが重要な場合は、無料のオープンソースAPIクライアントも検討してください。

Kreyaはオフラインで動作しますか?

はい。Kreyaは完全にオフラインで動作するデスクトップアプリです。プロジェクト、環境、レスポンスはローカルマシン上に保存されます。APIリクエストを送信するためにクラウドアカウントは必要ありません。

Kreyaはどのプロトコルをサポートしていますか?

KreyaはgRPC、REST、GraphQL、WebSocket、Server-Sent Eventsをサポートしています。特にgRPCでは、protoファイルのインポート、Server Reflection、Unary、Client streaming、Server streaming、Bidirectional streamingに対応しています。

Kreyaはバージョン管理をどのように扱いますか?

Kreyaは各プロジェクトをGitで差分比較可能なJSONファイルとして保存します。リポジトリにコミットし、プルリクエストで変更をレビューし、必要に応じて標準のGitコマンドで戻せます。

Kreya APIクライアントはKreyaファッションブランドと関係がありますか?

いいえ。この記事で説明しているKreyaは、kreya.appで提供されているriok GmbH製のAPIクライアントです。同名のファッションブランドやビューティーブランドとは関係ありません。

Top comments (0)