1.13. 검색 쿼리 API
검색 쿼리 API는 Kubernetes API가 아니므로 Red Hat OpenShift Container Platform API Explorer를 통해 표시되지 않습니다. 검색 쿼리 API 기능을 이해하기 위해 계속 읽습니다.
1.13.1. 개요
경로와 함께 검색 쿼리 API를 노출하고 API를 사용하여 검색 쿼리를 해결할 수 있습니다. API는 GraphQL 끝점입니다. curl 또는 Postman과 같은 모든 클라이언트를 사용할 수 있습니다.
1.13.1.1. 버전 정보
버전 : 2.10.0
1.13.1.2. URI 스키마
BasePath : /searchapi/graphql
Schemes : HTTPS
1.13.1.3. API 액세스 구성
다음 명령을 사용하여 클러스터 외부에서 Search API에 액세스할 경로를 생성합니다.
oc create route passthrough search-api --service=search-search-api -n open-cluster-management
중요: 환경을 보호하려면 경로를 구성해야 합니다. 자세한 내용은 OpenShift Container Platform 설명서의 경로 구성 을 참조하십시오.
1.13.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.13.2.1. 쿼리 입력 설명
유형 | 설명 | 속성 |
---|---|---|
SearchFilter | 결과를 필터링할 키와 값을 정의합니다. 속성에 많은 값을 제공할 때 API는 값을 "OR" 작업으로 해석합니다. 여러 필터를 제공하면 결과가 모든 필터와 일치하고 API는 "AND" 작업으로 해석됩니다. | string |
SearchInput | 리소스 목록을 받으려면 핵심 단어를 입력합니다. 많은 키워드를 제공하면 API는 이를 "AND" 작업으로 해석합니다. | 문자열 |
제한 |
쿼리를 입력한 후 반환되는 최대 결과 수를 확인합니다. 기본값은 | 정수 |
1.13.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.13.3. 일반 스키마
type Query { search(input: [SearchInput]): [SearchResult] searchComplete(property: String!, query: SearchInput, limit: Int): [String] searchSchema: Map messages: [Message] }
1.13.4. 지원되는 쿼리
JSON 형식으로 지원되는 쿼리 유형을 확인하려면 계속 읽습니다.
1.13.4.1. 배포 검색
쿼리:
query mySearch($input: [SearchInput]) { search(input: $input) { items } }
변수:
{"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Deployment"]}], "limit":10 } ]}
1.13.4.2. Pod 검색
쿼리:
query mySearch($input: [SearchInput]) { search(input: $input) { items } }
변수:
{"input":[ { "keywords":[], "filters":[ {"property":"kind","values":["Pod"]}], "limit":10 } ]}