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
}
]}