1.12. 検索クエリー API
検索クエリー API は Kubernetes API ではないため、Red Hat OpenShift Container Platform API Explorer では表示されません。検索クエリー API の機能を理解するには、本書の続きもご確認ください。
1.12.1. 概要
検索クエリー API をルートで公開し、API を使用して検索クエリーを解決できます。API は GraphQL エンドポイントです。curl や Postman などの任意のクライアントを使用できます。
1.12.1.1. バージョン情報
バージョン: 2.9.0
1.12.1.2. URI スキーム
BasePath : /searchapi/graphql
Schemes : HTTPS
1.12.1.3. API アクセスの設定
以下のコマンドを使用して、クラスターの外部から Search API にアクセスするためのルートを作成します。
oc create route passthrough search-api --service=search-search-api -n open-cluster-management
重要: 環境を保護するには、ルートを設定する必要があります。詳細は、OpenShift Container Platform ドキュメントの ルート設定 を参照してください。
1.12.2. スキーマ設計
input SearchFilter { property: String! values: [String]! } input SearchInput { keywords: [String] filters: [SearchFilter] limit: Int relatedKinds: [String] } type SearchResult { count: Int items: [Map] related: [SearchRelatedResult] } type SearchRelatedResult { kind: String! count: Int items: [Map] }
!
を使用したパラメーターは、フィールドが必要であることを示します。
1.12.2.1. クエリー入力の説明表
型 | 説明 | プロパティー |
---|---|---|
検索フィルター | 結果をフィルタリングするキーと値を定義します。プロパティーに多くの値を指定すると、API は値を "OR" 操作として解釈します。多くのフィルターを指定すると、結果はすべてのフィルターに一致し、API は AND 操作として解釈します。 | string |
検索入力 | リソースの一覧を表示するには、主要な用語を入力します。多くのキーワードを指定すると、API はそれを AND 操作として解釈します。 | String |
limit |
クエリーを入力した後に返される結果の最大数を決定します。デフォルト値は | Integer |
1.12.2.2. スキーマの例
{ "query": "type SearchResult {count: Intitems: [Map]related: [SearchRelatedResult]} type SearchRelatedResult {kind: String!count: Intitems: [Map]}", "variables": { "input": [ { "keywords": [], "filters": [ { "property": "kind", "values": [ "Deployment" ] } ], "limit": 10 } ] } }
1.12.3. 汎用スキーマ
type Query { search(input: [SearchInput]): [SearchResult] searchComplete(property: String!, query: SearchInput, limit: Int): [String] searchSchema: Map messages: [Message] }
1.12.4. サポートされているクエリー
JSON 形式でサポートされているクエリータイプを確認するには、このまま読み進めてください。
1.12.4.1. デプロイメントの検索
クエリー:
query mySearch($input: [SearchInput]) { search(input: $input) { items } }
変数:
{"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Deployment"]}], "limit":10 } ]}
1.12.4.2. Pod の検索
クエリー:
query mySearch($input: [SearchInput]) { search(input: $input) { items } }
変数:
{"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Pod"]}], "limit":10 } ]}