Package com.linkedin.venice.router.api
Class VenicePathParser
java.lang.Object
com.linkedin.venice.router.api.VenicePathParser
- All Implemented Interfaces:
ExtendedResourcePathParser<VenicePath,,RouterKey, BasicFullHttpRequest> ResourcePathParser<VenicePath,RouterKey>
public class VenicePathParser
extends Object
implements ExtendedResourcePathParser<VenicePath,RouterKey,BasicFullHttpRequest>
Inbound single get request to the router will look like:
GET /storage/storeName/key?f=fmt
'storage' is a literal, meaning we will request the value for a single key
storeName will be the name of the requested store
key is the key being looked up
fmt is an optional format parameter, one of 'string' or 'b64'. If omitted, assumed to be 'string'
Batch get requests look like:
POST /storage/storeName
And the keys are concatenated in the POST body.
The VenicePathParser is responsible for looking up the active version of the store, and constructing the store-version
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final intstatic final Patternstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringDeprecated.static final Stringstatic final Stringstatic final Stringstatic final String -
Constructor Summary
ConstructorsConstructorDescriptionVenicePathParser(VeniceVersionFinder versionFinder, VenicePartitionFinder partitionFinder, RouterStats<AggRouterHttpRequestStats> routerStats, ReadOnlyStoreRepository storeRepository, VeniceRouterConfig routerConfig, CompressorFactory compressorFactory, io.tehuti.metrics.MetricsRepository metricsRepository, ScheduledExecutorService retryManagerScheduler, NameRepository nameRepository) -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanisStoreNameValid(String storeName) parseResourceUri(String uri) parseResourceUri(String uri, BasicFullHttpRequest fullHttpRequest) substitutePartitionKey(VenicePath path, RouterKey s) substitutePartitionKey(VenicePath path, Collection<RouterKey> s)
-
Field Details
-
STORE_PATTERN
-
STORE_MAX_LENGTH
public static final int STORE_MAX_LENGTH- See Also:
-
SEP
- See Also:
-
TYPE_STORAGE
- See Also:
-
TYPE_COMPUTE
- See Also:
-
TASK_READ_QUOTA_THROTTLE
- See Also:
-
ACTION_ENABLE
- See Also:
-
ACTION_DISABLE
- See Also:
-
TYPE_LEADER_CONTROLLER
-
TYPE_LEADER_CONTROLLER_LEGACY
Deprecated. -
TYPE_KEY_SCHEMA
-
TYPE_VALUE_SCHEMA
-
TYPE_GET_UPDATE_SCHEMA
-
TYPE_CLUSTER_DISCOVERY
-
TYPE_REQUEST_TOPIC
-
TYPE_HEALTH_CHECK
-
TYPE_ADMIN
-
TYPE_RESOURCE_STATE
-
TYPE_CURRENT_VERSION
-
TYPE_BLOB_DISCOVERY
-
-
Constructor Details
-
VenicePathParser
public VenicePathParser(VeniceVersionFinder versionFinder, VenicePartitionFinder partitionFinder, RouterStats<AggRouterHttpRequestStats> routerStats, ReadOnlyStoreRepository storeRepository, VeniceRouterConfig routerConfig, CompressorFactory compressorFactory, io.tehuti.metrics.MetricsRepository metricsRepository, ScheduledExecutorService retryManagerScheduler, NameRepository nameRepository)
-
-
Method Details
-
parseResourceUri
public VenicePath parseResourceUri(String uri, BasicFullHttpRequest fullHttpRequest) throws RouterException - Specified by:
parseResourceUriin interfaceExtendedResourcePathParser<VenicePath,RouterKey, BasicFullHttpRequest> - Throws:
RouterException
-
parseResourceUri
- Specified by:
parseResourceUriin interfaceResourcePathParser<VenicePath,RouterKey> - Throws:
RouterException
-
substitutePartitionKey
- Specified by:
substitutePartitionKeyin interfaceResourcePathParser<VenicePath,RouterKey>
-
substitutePartitionKey
- Specified by:
substitutePartitionKeyin interfaceResourcePathParser<VenicePath,RouterKey>
-
isStoreNameValid
-