Accessing Repository Resources That Have Slashes in Their Name

In Siebel CRM Repository, some resource names can include a forward slash (`/`). For example, the Link Repository object `Account/Opportunity` is a single Repository resource name, not two separate URI path segments.

Siebel REST API Repository resource URIs also use forward slashes to separate URI path segments, you must encode any forward slash that is part of a Repository resource name as `%2F` in the request URI. This rule applies to all Repository resource operations where the resource name appears in the URI, including QUERY, INSERT, UPDATE, and DELETE operations.

Encode only the forward slash that belongs to the Repository resource name. Do not encode the forward slashes that separate URI path segments.

Note: Encode forward slashes as `%2F` only in the request URI. Do not encode forward slashes in the request body. For example, when you specify a Repository resource name in a JSON request body, use the original value, such as `Account/Opportunity`.

Configuration to Allow Repository Resources with Forward Slashes in Their Names

Before using %2F in repository resource names, make sure that Apache Tomcat and any proxy server or load balancer in front of Siebel REST are configured to pass encoded forward slashes to the Siebel REST application without decoding or rejecting them.

For Apache Tomcat, configure the HTTP Connector that receives Siebel REST requests to pass encoded forward slashes unchanged. For example:
<Connector
port="port_number"
protocol="HTTP/1.1"
encodedSolidusHandling="passthrough"/>

Configure this setting for each Tomcat connector that receives Siebel REST API requests. Restart the application container after updating the connector configuration.

For example, use:
http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Link/Account%2FOpportunity

Do not use: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Link/Account/Opportunity

In the incorrect URI, Account and Opportunity are interpreted as separate URI path segments instead of a single Link repository object name.

The following request queries the Account/Opportunity Link repository object:

URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Link/Account%2FOpportunity

HTTP Method: GET
Content-Type: application/json
Authorization: Basic