REST APIとGraphQLエンドポイント

Weaviateの「インストールとセットアップ」におけるREST APIとGraphQLエンドポイントについて、以下の通り詳しく説明します。


概要

Weaviateはデータの登録・検索・管理にREST APIとGraphQLという2種類のエンドポイントを提供しています。どちらもHTTPプロトコルを介してアクセスでき、用途に応じて使い分けることが可能です。


1. REST APIエンドポイント

特徴

  • エンドポイントは http(s)://<ホスト>:<ポート>/v1/ に配置されます。

  • 主にスキーマの操作、ベクトルデータのインジェスト、バックアップ・レプリケーション管理など、構成操作や管理処理に用いられます。

主なエンドポイント例

HTTPメソッド エンドポイント例 説明
GET /v1/schema 現在のスキーマ構造を取得
POST /v1/schema 新しいスキーマ(Class)の作成
POST /v1/objects データオブジェクトの追加
GET /v1/objects/{id} 指定IDのオブジェクト取得
DELETE /v1/objects/{id} オブジェクトの削除

使用例(cURL)

bash
curl -X GET http://localhost:8080/v1/schema

2. GraphQLエンドポイント

特徴

  • エンドポイントは http(s)://<ホスト>:<ポート>/v1/graphql に配置されます。

  • データ検索・フィルタ・ベクトル検索に最適化されており、構造化クエリを使用して柔軟な検索が可能です。

  • RESTより複雑な検索ロジックを1つのリクエストで表現できます。

GraphQLの主な機能

  • Get クエリによるデータの取得

  • Explore クエリによるベクトル探索

  • Aggregate クエリによる統計処理

使用例(GraphQLクエリ)

graphql
{ Get { Article { title content } } }

実行例(cURL)

bash
curl -X POST http://localhost:8080/v1/graphql \ -H "Content-Type: application/json" \ -d '{ "query": "{ Get { Article { title } } }" }'

RESTとGraphQLの使い分け

用途 推奨エンドポイント
スキーマの作成・管理 REST API
データの登録・削除 REST API
高度な検索・ベクトル探索 GraphQL
検索条件の柔軟な記述 GraphQL

補足

Weaviateはこれらのエンドポイントを起動直後から使用可能であり、**OpenAPIドキュメント(Swagger UI)**も /v1/.well-known/apidocs にアクセスすることでREST APIの仕様をGUI上で確認することができます。

ChatGPT4o 生成日:2025/06/20