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.8.0
1.12.1.2. URI scheme
basePath : /searchapi/graphql
Schemes : HTTPS
1.12.1.3. 配置 API 访问
使用以下命令,创建路由以访问集群外部的搜索 API:
oc create route passthrough search-api --service=search-search-api -n open-cluster-management
重要: 您必须配置路由来保护您的环境。如需了解更多详细信息,请参阅 OpenShift Container Platform 文档中的 Route 配置。
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. 查询输入的描述表
类型 | 描述 | 属性 |
---|---|---|
SearchFilter | 定义用于过滤结果的键和值。当您为属性提供多个值时,API 会将值解释为"OR"操作。当您提供多个过滤器时,结果会匹配所有过滤器,API 会解释为"AND"操作。 | 字符串 |
SearchInput | 输入关键字以接收资源列表。当您提供许多关键字时,API 会将它解析为"AND"操作。 | 字符串 |
limit |
确定输入查询后返回的最大结果数。默认值为 | 整数 |
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:
query mySearch($input: [SearchInput]) { search(input: $input) { items } }
变量:
{"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Deployment"]}], "limit":10 } ]}
1.12.4.2. 搜索 pod
query:
query mySearch($input: [SearchInput]) { search(input: $input) { items } }
变量:
{"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Pod"]}], "limit":10 } ]}