Load a view from the catalog
GET/v1/:prefix/namespaces/:namespace/views/:view
Load a view from the catalog.
The response contains both configuration and view metadata. The configuration, if non-empty is used as additional configuration for the view that overrides catalog configuration.
The response also contains the view's full metadata, matching the view metadata JSON file.
The catalog configuration may contain credentials that should be used for subsequent requests for the view. The configuration key "token" is used to pass an access token to be used as a bearer token for view requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration key. For example, "urn:ietf:params:oauth:token-type:jwt=<JWT-token>".
Request
Path Parameters
- singlepart_namespace
- multipart_namespace
The catalog name in Gravitino, as returned in defaults.prefix by GET /v1/config
A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override namespace-separator, which defaults to the unit separator 0x1F byte (url encoded %1F). To be compatible with older clients, servers must use both the advertised separator and 0x1F as valid separators when decoding namespaces. The namespace-separator should be provided in a url encoded form.
Example: accounting
Example: accounting%1Ftax
A view name
Query Parameters
A comma-separated list of fully qualified view names (namespace and view name) representing the view reference chain when an entity (table or view) is loaded via a view. The list should be ordered with the outermost view first, followed by any intermediate views it references, down to the view that directly references the entity. For a simple case where a view directly references the entity, the list contains a single view identifier. For nested views (a view referencing another view which references the entity), the list contains multiple view identifiers representing the complete dependency chain. The view identifier is a composite string of the format {namespace}{separator}{viewName}. The namespace-separator (defined in /config) acts as the delimiter. When parsing, the last occurrence of this separator identifies the boundary between the namespace and the view name. Multipart namespaces must follow the encoding rules of the parent parameter in the list namespaces endpoint. Multiple view identifiers are separated by commas. Servers should split the parameter value on comma characters to parse individual view identifiers. If view names contain commas, they must be url-encoded as %2C. Example with multiple views (where prod%1Fanalytics is a nested namespace which has a quarterly_view which references to monthly_view which then references the entity being loaded) - prod%1Fanalytics%1Fquarterly_view,prod%1Fanalytics%1Fmonthly_view
Responses
- 200
- 400
- 401
- 403
- 404
- 419
- 503
- 5XX
View metadata result when loading a view
- application/json
- Schema
- Example (from schema)
Schema
Array [
Array [
- SQLViewRepresentation
]
]
Array [
]
metadata
object
required
Possible values: >= 1 and <= 1
versions
object[]
required
Schema ID to set as current, or -1 to set last added schema
summary
object
required
representations
object[]
required
oneOf
Reference to one or more levels of a namespace
version-log
object[]
required
properties
object
config
object
{
"metadata-location": "string",
"metadata": {
"view-uuid": "string",
"format-version": 0,
"location": "string",
"current-version-id": 0,
"versions": [
{
"version-id": 0,
"timestamp-ms": 0,
"schema-id": 0,
"summary": {},
"representations": [
{}
],
"default-catalog": "string",
"default-namespace": [
"accounting",
"tax"
]
}
],
"version-log": [
{
"version-id": 0,
"timestamp-ms": 0
}
],
"schemas": [
{
"type": "string",
"fields": [
{
"id": 0,
"name": "string",
"type": [
"long",
"string",
"fixed[16]",
"decimal(10,2)"
],
"required": true,
"doc": "string",
"initial-default": true,
"write-default": true
}
],
"schema-id": 0,
"identifier-field-ids": [
0
]
}
],
"properties": {}
},
"config": {}
}
Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.
- application/json
- Schema
- Example (from schema)
- Example
Schema
error
object
required
JSON error payload returned in a response with further details on the error
Human-readable error message
Internal type definition of the error
Possible values: >= 400 and <= 600
HTTP response code
{
"error": {
"message": "The server does not support this operation",
"type": "UnsupportedOperationException",
"code": 406
}
}
{
"error": {
"message": "Malformed request",
"type": "BadRequestException",
"code": 400
}
}
Unauthorized. The REST Catalog SHOULD respond with the 401 UnauthorizedResponse when the access token provided is expired, revoked, malformed, or invalid for other reasons. The client MAY request a new access token and retry the request.
- application/json
- Schema
- Example (from schema)
- Example
Schema
error
object
required
JSON error payload returned in a response with further details on the error
Human-readable error message
Internal type definition of the error
Possible values: >= 400 and <= 600
HTTP response code
{
"error": {
"message": "The server does not support this operation",
"type": "UnsupportedOperationException",
"code": 406
}
}
{
"error": {
"message": "Not authorized to make this request",
"type": "NotAuthorizedException",
"code": 401
}
}
Forbidden. Authenticated user does not have the necessary permissions.
- application/json
- Schema
- Example (from schema)
- Example
Schema
error
object
required
JSON error payload returned in a response with further details on the error
Human-readable error message
Internal type definition of the error
Possible values: >= 400 and <= 600
HTTP response code
{
"error": {
"message": "The server does not support this operation",
"type": "UnsupportedOperationException",
"code": 406
}
}
{
"error": {
"message": "Not authorized to make this request",
"type": "NotAuthorizedException",
"code": 403
}
}
Not Found - NoSuchViewException, view to load does not exist
- application/json
- Schema
- Example (from schema)
- ViewToLoadDoesNotExist
Schema
Human-readable error message
Internal type definition of the error
Possible values: >= 400 and <= 600
HTTP response code
{
"message": "string",
"type": "NoSuchNamespaceException",
"code": 404,
"stack": [
"string"
]
}
The requested view does not exist
{
"error": {
"message": "The given view does not exist",
"type": "NoSuchViewException",
"code": 404
}
}
This is an optional status response type that the REST Catalog can issue when the token has expired. The client MAY request a new access token and retry the request. 401 UnauthorizedResponse SHOULD be preferred over this response type on token expiry.
- application/json
- Schema
- Example (from schema)
- Example
Schema
error
object
required
JSON error payload returned in a response with further details on the error
Human-readable error message
Internal type definition of the error
Possible values: >= 400 and <= 600
HTTP response code
{
"error": {
"message": "The server does not support this operation",
"type": "UnsupportedOperationException",
"code": 406
}
}
{
"error": {
"message": "Credentials have timed out",
"type": "AuthenticationTimeoutException",
"code": 419
}
}
The service is not ready to handle the request, request could have been partially processed. The service may additionally send a Retry-After header to indicate when to retry, a non idempotent request should only be retried by the client when the Retry-After header is present.
- application/json
- Schema
- Example (from schema)
- Example
Schema
error
object
required
JSON error payload returned in a response with further details on the error
Human-readable error message
Internal type definition of the error
Possible values: >= 400 and <= 600
HTTP response code
{
"error": {
"message": "The server does not support this operation",
"type": "UnsupportedOperationException",
"code": 406
}
}
{
"error": {
"message": "Slow down",
"type": "SlowDownException",
"code": 503
}
}
A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.
- application/json
- Schema
- Example (from schema)
- Example
Schema
error
object
required
JSON error payload returned in a response with further details on the error
Human-readable error message
Internal type definition of the error
Possible values: >= 400 and <= 600
HTTP response code
{
"error": {
"message": "The server does not support this operation",
"type": "UnsupportedOperationException",
"code": 406
}
}
{
"error": {
"message": "Internal Server Error",
"type": "InternalServerError",
"code": 500
}
}