<!-- Thanks for sending a pull request! Here are some tips for you: 1. If this is your first time, please read our contributor guidelines: https://kyuubi.readthedocs.io/en/latest/community/contributions.html 2. If the PR is related to an issue in https://github.com/apache/incubator-kyuubi/issues, add '[KYUUBI #XXXX]' in your PR title, e.g., '[KYUUBI #XXXX] Your PR title ...'. 3. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP][KYUUBI #XXXX] Your PR title ...'. --> ### _Why are the changes needed?_ <!-- Please clarify why the changes are needed. For instance, 1. If you add a feature, you can talk about the use case of it. 2. If you fix a bug, you can clarify why it is a bug. --> 1. add a new endpoint `/openapi.json` which describes the entire restful API of Kyuubi. 2. add a static web page `/api/v1/swagger-ui`. see [swagger-ui](https://github.com/swagger-api/swagger-ui) ``` curl http://localhost:10099/openapi.json | jq . ``` ```json { "openapi": "3.0.1", "info": { "title": "Apache Kyuubi RESTful Api Documentation", "description": "Apache Kyuubi RESTful Api Documentation", "contact": { "name": "Apache Kyuubi Community", "url": "https://kyuubi.apache.org/issue_tracking.html", "email": "devkyuubi.apache.org" }, "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, "version": "1.4.0" }, "tags": [ { "name": "Session" } ], "paths": { "/api/v1/ping": { "get": { "operationId": "ping", "responses": { "default": { "description": "default response", "content": { "text/plain": { "schema": { "type": "string" } } } } } } }, "/api/v1/sessions/{sessionHandle}": { "get": { "tags": [ "Session" ], "operationId": "sessionInfo", "parameters": [ { "name": "sessionHandle", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "get a session via session handle identifier", "content": { "application/json": {} } } } }, "delete": { "tags": [ "Session" ], "operationId": "closeSession", "parameters": [ { "name": "sessionHandle", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "close a Session", "content": { "application/json": {} } } } } }, "/api/v1/sessions/execPool/statistic": { "get": { "tags": [ "Session" ], "operationId": "execPoolStatistic", "responses": { "200": { "description": "get some statistic info of sessions", "content": { "application/json": {} } } } } }, "/api/v1/sessions/{sessionHandle}/info/{infoType}": { "get": { "tags": [ "Session" ], "operationId": "getInfo", "parameters": [ { "name": "sessionHandle", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "infoType", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "get a information detail via session handle identifier and a specific information type", "content": { "application/json": {} } } } } }, "/api/v1/sessions": { "get": { "tags": [ "Session" ], "operationId": "sessionInfoList", "responses": { "200": { "description": "get all the session list hosted in SessionManager", "content": { "application/json": {} } } } }, "post": { "tags": [ "Session" ], "operationId": "openSession", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionOpenRequest" } } } }, "responses": { "200": { "description": "Open(create) a Session", "content": { "application/json": {} } } } } }, "/api/v1/sessions/count": { "get": { "tags": [ "Session" ], "operationId": "sessionCount", "responses": { "200": { "description": "get open session count", "content": { "application/json": {} } } } } }, "/api/v1/exception": { "get": { "operationId": "test", "responses": { "default": { "description": "default response", "content": { "text/plain": {} } } } } }, "/application.wadl/{path}": { "get": { "operationId": "getExternalGrammar", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "description": "default response", "content": { "application/xml": {} } } } } }, "/application.wadl": { "get": { "operationId": "getWadl", "responses": { "default": { "description": "default response", "content": { "application/vnd.sun.wadl+xml": {}, "application/xml": {} } } } } } }, "components": { "schemas": { "ExecPoolStatistic": { "required": [ "execPoolSize" ], "type": "object", "properties": { "execPoolSize": { "type": "integer", "format": "int32" }, "execPoolActiveCount": { "type": "integer", "format": "int32" } } }, "InfoDetail": { "required": [ "infoType" ], "type": "object", "properties": { "infoType": { "type": "string" }, "infoValue": { "type": "string" } } }, "HandleIdentifier": { "required": [ "publicId" ], "type": "object", "properties": { "publicId": { "type": "string", "format": "uuid" }, "secretId": { "type": "string", "format": "uuid" } } }, "SessionHandle": { "required": [ "identifier", "protocol" ], "type": "object", "properties": { "identifier": { "$ref": "#/components/schemas/HandleIdentifier" }, "protocol": { "type": "string", "enum": [ "HIVE_CLI_SERVICE_PROTOCOL_V1", "HIVE_CLI_SERVICE_PROTOCOL_V2", "HIVE_CLI_SERVICE_PROTOCOL_V3", "HIVE_CLI_SERVICE_PROTOCOL_V4", "HIVE_CLI_SERVICE_PROTOCOL_V5", "HIVE_CLI_SERVICE_PROTOCOL_V6", "HIVE_CLI_SERVICE_PROTOCOL_V7", "HIVE_CLI_SERVICE_PROTOCOL_V8", "HIVE_CLI_SERVICE_PROTOCOL_V9", "HIVE_CLI_SERVICE_PROTOCOL_V10" ] } } }, "MapStringString": { "type": "object", "additionalProperties": { "type": "string" } }, "SessionOpenRequest": { "required": [ "configs", "protocolVersion", "user" ], "type": "object", "properties": { "protocolVersion": { "type": "integer", "format": "int32" }, "user": { "type": "string" }, "password": { "type": "string" }, "ipAddr": { "type": "string" }, "configs": { "type": "object", "additionalProperties": { "type": "string" } } } }, "SessionOpenCount": { "required": [ "openSessionCount" ], "type": "object", "properties": { "openSessionCount": { "type": "integer", "format": "int32" } } }, "SessionDetail": { "required": [ "configs", "createTime", "user" ], "type": "object", "properties": { "user": { "type": "string" }, "ipAddr": { "type": "string" }, "createTime": { "type": "integer", "format": "int64" }, "sessionHandle": { "$ref": "#/components/schemas/SessionHandle" }, "lastAccessTime": { "type": "integer", "format": "int64" }, "lastIdleTime": { "type": "integer", "format": "int64" }, "noOperationTime": { "type": "integer", "format": "int64" }, "configs": { "type": "object", "additionalProperties": { "type": "string" } } } }, "SeqSessionOverview": { "type": "array", "items": { "$ref": "#/components/schemas/SessionOverview" } }, "SessionList": { "required": [ "sessionList" ], "type": "object", "properties": { "sessionList": { "type": "array", "items": { "$ref": "#/components/schemas/SessionOverview" } } } }, "SessionOverview": { "required": [ "createTime", "user" ], "type": "object", "properties": { "user": { "type": "string" }, "ipAddr": { "type": "string" }, "createTime": { "type": "integer", "format": "int64" }, "sessionHandle": { "$ref": "#/components/schemas/SessionHandle" } } } } } } ``` http://localhost:10099/api/v1/swagger-ui > Note that this request will redirect to http://localhost:10099/swagger-ui-redirected/index.html?url=http://localhost:10099/openapi.json  ### _How was this patch tested?_ - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [ ] Add screenshots for manual tests if appropriate - [ ] [Run test](https://kyuubi.readthedocs.io/en/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes #1363 from cfmcgrady/kyuubi-1354. Closes #1354 8895d7fc [Fu Chen] typo 8f5dea9a [Fu Chen] addressed comment 4d325a45 [Fu Chen] constant MediaType.APPLICATION_JSON 0d96951e [Fu Chen] RESTful Api -> REST API be7d02dc [Fu Chen] add LIABILITY-edl.txt 4ff1053e [Fu Chen] update dev/dependencyList b126f7e6 [Fu Chen] swagger-ui 4.1.0 a35c2f29 [Fu Chen] addressed comment 7bde0534 [Fu Chen] update LICENSE-binary 38397dc2 [Fu Chen] align jackson version 923f3e7e [Fu Chen] update dev/dependencyList 7d5338c8 [Fu Chen] remove kyuubi-server static files 5cb66b33 [Fu Chen] update dev/dependencyList e8a8c421 [Fu Chen] fix style 5b13f69c [Fu Chen] add license and remove .map files c04d7a75 [Fu Chen] rebase master 2388dae8 [Fu Chen] fix style 8dcbd3db [Fu Chen] add static resource 4b0d6d0a [Fu Chen] expose OpenAPI Authored-by: Fu Chen <cfmcgrady@gmail.com> Signed-off-by: ulysses-you <ulyssesyou@apache.org>
105 lines
5.2 KiB
Plaintext
105 lines
5.2 KiB
Plaintext
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright ownership.
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
# (the "License"); you may not use this file except in compliance with
|
|
# the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
aopalliance-repackaged/2.6.1//aopalliance-repackaged-2.6.1.jar
|
|
classgraph/4.8.95//classgraph-4.8.95.jar
|
|
commons-codec/1.15//commons-codec-1.15.jar
|
|
commons-lang/2.6//commons-lang-2.6.jar
|
|
commons-lang3/3.10//commons-lang3-3.10.jar
|
|
curator-client/2.12.0//curator-client-2.12.0.jar
|
|
curator-framework/2.12.0//curator-framework-2.12.0.jar
|
|
curator-recipes/2.12.0//curator-recipes-2.12.0.jar
|
|
failureaccess/1.0.1//failureaccess-1.0.1.jar
|
|
guava/30.1-jre//guava-30.1-jre.jar
|
|
hadoop-client-api/3.3.1//hadoop-client-api-3.3.1.jar
|
|
hadoop-client-runtime/3.3.1//hadoop-client-runtime-3.3.1.jar
|
|
hive-common/2.3.9//hive-common-2.3.9.jar
|
|
hive-metastore/2.3.9//hive-metastore-2.3.9.jar
|
|
hive-serde/2.3.9//hive-serde-2.3.9.jar
|
|
hive-service-rpc/2.3.9//hive-service-rpc-2.3.9.jar
|
|
hive-shims-0.23/2.3.9//hive-shims-0.23-2.3.9.jar
|
|
hive-shims-common/2.3.9//hive-shims-common-2.3.9.jar
|
|
hk2-api/2.6.1//hk2-api-2.6.1.jar
|
|
hk2-locator/2.6.1//hk2-locator-2.6.1.jar
|
|
hk2-utils/2.6.1//hk2-utils-2.6.1.jar
|
|
htrace-core4/4.1.0-incubating//htrace-core4-4.1.0-incubating.jar
|
|
jackson-annotations/2.11.4//jackson-annotations-2.11.4.jar
|
|
jackson-core/2.11.4//jackson-core-2.11.4.jar
|
|
jackson-databind/2.11.4//jackson-databind-2.11.4.jar
|
|
jackson-dataformat-yaml/2.11.4//jackson-dataformat-yaml-2.11.4.jar
|
|
jackson-datatype-jsr310/2.11.4//jackson-datatype-jsr310-2.11.4.jar
|
|
jackson-jaxrs-base/2.11.4//jackson-jaxrs-base-2.11.4.jar
|
|
jackson-jaxrs-json-provider/2.11.4//jackson-jaxrs-json-provider-2.11.4.jar
|
|
jackson-module-jaxb-annotations/2.9.9//jackson-module-jaxb-annotations-2.9.9.jar
|
|
jackson-module-paranamer/2.11.4//jackson-module-paranamer-2.11.4.jar
|
|
jackson-module-scala_2.12/2.11.4//jackson-module-scala_2.12-2.11.4.jar
|
|
jakarta.activation/2.0.0//jakarta.activation-2.0.0.jar
|
|
jakarta.annotation-api/1.3.5//jakarta.annotation-api-1.3.5.jar
|
|
jakarta.inject/2.6.1//jakarta.inject-2.6.1.jar
|
|
jakarta.servlet-api/4.0.4//jakarta.servlet-api-4.0.4.jar
|
|
jakarta.validation-api/2.0.2//jakarta.validation-api-2.0.2.jar
|
|
jakarta.ws.rs-api/2.1.6//jakarta.ws.rs-api-2.1.6.jar
|
|
jakarta.xml.bind-api/3.0.0//jakarta.xml.bind-api-3.0.0.jar
|
|
javassist/3.25.0-GA//javassist-3.25.0-GA.jar
|
|
jaxb-api/2.2.11//jaxb-api-2.2.11.jar
|
|
jcl-over-slf4j/1.7.30//jcl-over-slf4j-1.7.30.jar
|
|
jersey-client/2.30//jersey-client-2.30.jar
|
|
jersey-common/2.30//jersey-common-2.30.jar
|
|
jersey-container-servlet-core/2.30//jersey-container-servlet-core-2.30.jar
|
|
jersey-entity-filtering/2.30//jersey-entity-filtering-2.30.jar
|
|
jersey-hk2/2.30//jersey-hk2-2.30.jar
|
|
jersey-media-jaxb/2.30//jersey-media-jaxb-2.30.jar
|
|
jersey-media-json-jackson/2.30//jersey-media-json-jackson-2.30.jar
|
|
jersey-server/2.30//jersey-server-2.30.jar
|
|
jetty-http/9.4.41.v20210516//jetty-http-9.4.41.v20210516.jar
|
|
jetty-io/9.4.41.v20210516//jetty-io-9.4.41.v20210516.jar
|
|
jetty-security/9.4.41.v20210516//jetty-security-9.4.41.v20210516.jar
|
|
jetty-server/9.4.41.v20210516//jetty-server-9.4.41.v20210516.jar
|
|
jetty-servlet/9.4.41.v20210516//jetty-servlet-9.4.41.v20210516.jar
|
|
jetty-util-ajax/9.4.41.v20210516//jetty-util-ajax-9.4.41.v20210516.jar
|
|
jetty-util/9.4.41.v20210516//jetty-util-9.4.41.v20210516.jar
|
|
libfb303/0.9.3//libfb303-0.9.3.jar
|
|
libthrift/0.9.3//libthrift-0.9.3.jar
|
|
log4j/1.2.17//log4j-1.2.17.jar
|
|
metrics-core/4.1.1//metrics-core-4.1.1.jar
|
|
metrics-jmx/4.1.1//metrics-jmx-4.1.1.jar
|
|
metrics-json/4.1.1//metrics-json-4.1.1.jar
|
|
metrics-jvm/4.1.1//metrics-jvm-4.1.1.jar
|
|
netty-all/4.1.68.Final//netty-all-4.1.68.Final.jar
|
|
osgi-resource-locator/1.0.3//osgi-resource-locator-1.0.3.jar
|
|
paranamer/2.8//paranamer-2.8.jar
|
|
scala-library/2.12.15//scala-library-2.12.15.jar
|
|
scopt_2.12/4.0.1//scopt_2.12-4.0.1.jar
|
|
simpleclient/0.10.0//simpleclient-0.10.0.jar
|
|
simpleclient_common/0.10.0//simpleclient_common-0.10.0.jar
|
|
simpleclient_dropwizard/0.10.0//simpleclient_dropwizard-0.10.0.jar
|
|
simpleclient_servlet/0.10.0//simpleclient_servlet-0.10.0.jar
|
|
slf4j-api/1.7.30//slf4j-api-1.7.30.jar
|
|
slf4j-log4j12/1.7.30//slf4j-log4j12-1.7.30.jar
|
|
snakeyaml/1.26//snakeyaml-1.26.jar
|
|
swagger-annotations-jakarta/2.1.11//swagger-annotations-jakarta-2.1.11.jar
|
|
swagger-annotations/2.1.11//swagger-annotations-2.1.11.jar
|
|
swagger-core-jakarta/2.1.11//swagger-core-jakarta-2.1.11.jar
|
|
swagger-core/2.1.11//swagger-core-2.1.11.jar
|
|
swagger-integration/2.1.11//swagger-integration-2.1.11.jar
|
|
swagger-jaxrs2/2.1.11//swagger-jaxrs2-2.1.11.jar
|
|
swagger-models-jakarta/2.1.11//swagger-models-jakarta-2.1.11.jar
|
|
swagger-models/2.1.11//swagger-models-2.1.11.jar
|
|
swagger-scala-module_2.12/2.5.2//swagger-scala-module_2.12-2.5.2.jar
|
|
swagger-ui/4.1.0//swagger-ui-4.1.0.jar
|
|
zookeeper/3.4.14//zookeeper-3.4.14.jar
|