The HoldingsIQ service retrieves vendor, package and title related information in JSON format. The service automates the managing of holdings data from different sources.

 

 

 

 

Create a Custom Package Code Samples

Use the code samples below as examples to create an application in your desired language.  The following code samples use the /{custid}/vendors/{vendorid}/packages endpoint which allows you to create custom packages.  Get started and begin to understand the endpoint by following the examples below in the language of your choice. 

 

Code Samples

cURL

curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" --header "x-api-key: APIKEY" -d "{
  \"packageName\": \"Library Package 1\",
  \"contentType\": 3,
  \"customCoverage\": {
    \"beginCoverage\": \"1989-03-01\",
    \"endCoverage\": \"2001-06-30\"
  }
}" \
"https://sandbox.ebsco.io/rm/rmaccounts/CUSTID/vendors/117654/packages" 


Java

// Construct the client
OkHttpClient client = new OkHttpClient();

// Create the URL
HttpUrl url = new HttpUrl.Builder()
      .scheme("https")
      .host("sandbox.ebsco.io")
      .addPathSegment("rm")
      .addPathSegment("rmaccounts")
      .addPathSegment(CUSTID)
      .addPathSegment("vendors")
      .addPathSegment(VENDORID)
      .addPathSegment("packages")
      .build();

// Build the body       
MediaType mediaType = MediaType.parse("application/octet-stream");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"packageName\": \"Custom Package Ex\",\r\n    \"contentType\": 3,\r\n    \"customCoverage\": {\r\n        \"beginCoverage\": \"2009-01-01\",\r\n        \"endCoverage\": \"2017-12-28\"\r\n    }\r\n}");

// Build the request
Request request = new Request.Builder()
       .url(url)
       .post(body)
       .addHeader("cache-control", "no-cache")
       .addHeader("x-api-key", APIKEY)
       .addHeader("content-type", "application/json")
       .build();

// Send the request
Response response = client.newCall(request).execute();


JavaScript

var host = "https://sandbox.ebsco.io/rm/rmaccounts/";
var pathsega = "/vendors/";
var pathsegb = "/packages";

// Create the Request
var urlstr = host + CUSTID + pathsega + VENDORID + pathsegb;

var settings = {
  "async": true,
  "crossDomain": true,
  "url": urlstr,
  "method": "POST",
  "headers": {
    "x-api-key": APIKEY,
    "content-type": "application/json"
  },
  "data": "{\r\n    \"packageName\": \"Custom Package Example 3\",\r\n    \"contentType\": 3,\r\n    \"customCoverage\": {\r\n        \"beginCoverage\": \"2009-01-01\",\r\n        \"endCoverage\": \"2017-12-28\"\r\n    }\r\n}"
}

// Send the Request
$.ajax(settings)
.done(function (response) {console.log(response.code);})


Ruby

# Form the URL 
urlstr = File.join('https://', 'sandbox.ebsco.io', 'rm/rmaccounts', CUSTID, 'vendors', VENDORID, 'packages')
url = URI(urlstr)

# Create the HTTP object
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

# Create the request
request = Net::HTTP::Post.new(url)
request["x-api-key"] = APIKEY
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n    \"packageName\": \"Package Cust 6\",\r\n    \"contentType\": 3,\r\n    \"customCoverage\": {\r\n        \"beginCoverage\": \"2009-01-01\",\r\n        \"endCoverage\": \"2017-12-28\"\r\n    }\r\n}"

# Send the request
response = http.request(request)


Python

# Form the URL
url = ''.join(['/rm','/rmaccounts/', CUSTID, '/vendors/', VENDORID, '/packages'])

# Create Connection Instance
conn = http.client.HTTPSConnection("sandbox.ebsco.io")

# Payload
payload = "{\r\n    \"packageName\": \"Custom Package Example 1\",\r\n    \"contentType\": 3,\r\n    \"customCoverage\": {\r\n        \"beginCoverage\": \"2009-01-01\",\r\n        \"endCoverage\": \"2017-12-28\"\r\n    }\r\n}"

# Create the Request Headers
headers = {
    'x-api-key': APIKEY,
    'content-type': "application/json"
    }

# Send Request  
conn.request("POST", url, payload, headers)

# Get Response
res = conn.getresponse()
data = res.read()