mod-kb-ebsco (v1)

https://github.com/folio-org/mod-kb-ebsco

Table of contents

mod-kb-ebsco (category)

Implements the eholdings interface using the EBSCO kb as a backend.

Packages

GET /eholdings/packages

Retrieve a collection of packages

GET /eholdings/packages
Query Parameters
  • q: (string)

    String to search for to get a collection of packages

    Example:

    ABC-CLIO
  • page: (integer - minimum: 1 - maximum: 2147483647)

    Page offset to retrieve results from Ebsco KB

    Example:

    1
  • count: (integer - default: 25 - minimum: 0 - maximum: 100)

    Count of number of results to retrieve from Ebsco KB

    Example:

    100
  • sort: (one of name, relevance)

    Option by which results are sorted

    Example:

    name
  • filter[selected]: (one of true, false, ebsco, all)

    Filter to narrow down results based on selection status

    Example:

    false
  • filter[type]: (one of all, aggregatedfulltext, abstractandindex, ebook, ejournal, print, onlinereference, unknown)

    Filter to narrow down results based on content type

    Example:

    print
  • filter[custom]: (true)

    Filter to get list of custom packages

    Example:

    true

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": [{
    "id": "0-1117849",
    "type": "packages",
    "attributes": {
      "contentType": "Unknown",
      "customCoverage": {
        "beginCoverage": "",
        "endCoverage": ""
      },
      "isCustom": false,
      "isSelected": false,
      "name": "",
      "packageId": 1117849,
      "packageType": "Complete",
      "providerId": 0,
      "providerName": "System Account",
      "selectedCount": 0,
      "titleCount": 0,
      "vendorId": 0,
      "vendorName": "System Account",
      "visibilityData": {
        "isHidden": false,
        "reason": ""
      }
    },
    "relationships": {
      "resources": {
        "meta": {
          "included": false
        }
      },
      "vendor": {
        "meta": {
          "included": false
        }
      },
      "provider": {
        "meta": {
          "included": false
        }
      }
    }
  }]
}

Response 400

Bad Request

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": "Invalid filter parameter"
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

POST /eholdings/packages

Create a custom package

POST /eholdings/packages
Headers
  • Content-Type: required (string)

    Example:

    application/vnd.api+json
Body

Media type: application/vnd.api+json

Properties:

  • data: required (object)

    Needed because of JSON API

    • type: required (string)
    • attributes: required (object)

      Needed because of JSON API

      • name: required (string)

        Name of the custom package to be created

        Example:

        My test package
      • contentType: required (one of Aggregated Full Text, Abstract and Index, E-Book, E-Journal, Print, Online Reference, Unknown)

        Content type of the custom package to be created

        Example:

        Unknown
      • customCoverage: (object)

        Coverage dates of the custom package to be created

        • beginCoverage: required (string)
        • endCoverage: required (string)

        Example:

        {
          "beginCoverage": "2003-01-01",
          "endCoverage": "2003-12-01"
        }
        

Example:

 {
   "data": {
     "type": "packages",
     "attributes": {
       "name": "yet another custom package",
       "contentType": "Unknown",
       "customCoverage": {
         "beginCoverage": "2003-01-01",
         "endCoverage": "2004-01-01"
       }
     }
   }
 }

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "123355-2880981",
    "type": "packages",
    "attributes": {
      "contentType": "E-Book",
      "customCoverage": {
        "beginCoverage": "2003-01-01",
        "endCoverage": "2004-01-01"
      },
      "isCustom": true,
      "isSelected": true,
      "name": "yet another custom package again",
      "packageId": 2880981,
      "packageType": "Custom",
      "providerId": 123355,
      "providerName": "API DEV CORPORATE CUSTOMER",
      "selectedCount": 0,
      "titleCount": 0,
      "vendorId": 123355,
      "vendorName": "API DEV CORPORATE CUSTOMER",
      "visibilityData": {
        "isHidden": false,
        "reason": ""
      },
      "allowKbToAddTitles": false
    },
    "relationships": {
      "resources": {
        "meta": {
          "included": false
        }
      },
      "vendor": {
        "meta": {
          "included": false
        }
      },
      "provider": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 400

Bad Request

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": {
      "errors": [{
        "code": 1009,
        "subCode": 0,
        "message": "Custom Package with the provided name already exists"
      }]
    }
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

GET /eholdings/packages/{packageId}

Retrieve a specific package given packageId. Note that packageId is providerId-packageId

GET /eholdings/packages/{packageId}
URI Parameters
  • packageId: required (string)
Query Parameters
  • include: (one of resources, provider)

    Include resources or provider in response

    Example:

    resources

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "123355-2848228",
    "attributes": {
      "contentType": "E-Journal",
      "customCoverage": {
        "beginCoverage": "2003-01-01",
        "endCoverage": "2004-01-01"
      },
      "isCustom": true,
      "isSelected": true,
      "name": "test package for documentation again",
      "packageId": 2848228,
      "packageType": "Custom",
      "providerId": 123355,
      "providerName": "API DEV CORPORATE CUSTOMER",
      "selectedCount": 0,
      "titleCount": 0,
      "vendorId": 123355,
      "vendorName": "API DEV CORPORATE CUSTOMER",
      "visibilityData": {
        "isHidden": true,
        "reason": ""
      },
      "allowKbToAddTitles": false,
      "packageToken": {
        "factName":"siteid",
        "prompt":"/itweb/",
        "helpText":"<ul><li>Enter your token</li></ul>",
        "value": "123456"
      },
      "proxy": {
        "id": "<n>",
        "inherited": true
      }
    },
    "relationships": {
      "resources": {
        "meta": {
          "included": false
        }
      },
      "vendor": {
        "meta": {
          "included": false
        }
      },
      "provider": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 400

Bad Request

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": {
      "errors": [{
        "code": 1006,
        "subCode": 0,
        "message": "Invalid value for orderby. Acceptable values are: Relevance, 0, PackageName, 1"
      }, {
        "code": 1005,
        "subCode": 0,
        "message": "Parameter Count is missing."
      }, {
        "code": 1005,
        "subCode": 0,
        "message": "Parameter Offset is missing."
      }, {
        "code": 1005,
        "subCode": 0,
        "message": "Parameter OrderBy is missing."
      }]
    }
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

Response 404

Not Found

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": {
      "errors": [{
        "code": 1001,
        "subCode": 0,
        "message": "Vendor not found"
      }]
    }
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

PUT /eholdings/packages/{packageId}

Update a managed or custom package using packageId Note that packageId is providerId-packageId

PUT /eholdings/packages/{packageId}
URI Parameters
  • packageId: required (string)
Headers
  • Content-Type: required (string)

    Example:

    application/vnd.api+json
Body

Media type: application/vnd.api+json

Properties:

  • data: required (object)

    Needed because of JSON API

    • type: required (string)
    • attributes: required (object)

      Needed because of JSON API

      • name: required (string)

        Name of the custom package to be updated. Note that this attribute can be updated ONLY FOR A CUSTOM PACKAGE.

        Example:

        My test package
      • contentType: required (one of Aggregated Full Text, Abstract and Index, E-Book, E-Journal, Print, Online Reference, Unknown)

        Content type of the custom package to be updated. Note that this attribute can be updated ONLY FOR A CUSTOM PACKAGE.

        Example:

        Unknown
      • customCoverage: (object)

        Coverage dates of the custom or managed package to be updated. Note that this attribute can be updated BOTH FOR CUSTOM PACKAGES AND MANAGED PACKAGES.

        • beginCoverage: required (string)
        • endCoverage: required (string)

        Example:

        {
          "beginCoverage": "2003-01-01",
          "endCoverage": "2003-12-01"
        }
        
      • isSelected: (boolean)

        Selection of the managed or custom package to be updated. Note that selection can be updated for BOTH CUSTOM AND MANAGED PACKAGES. For custom packages, if this is set to false, it deletes the package.

        Example:

        true
      • allowKbToAddTitles: (boolean)

        Automatically allow KB to add titles for a managed package. Note that this attribute can be updated ONLY FOR A MANAGED PACKAGE.

        Example:

        true
      • visibilityData: (object)

        Indicates whether package should be hidden or visible to patrons. Note that this attribute can be updated both for CUSTOM AND MANAGED PACKAGES.

        • isHidden: required (boolean)

        Example:

        {
          "isHidden": true
        }
        
      • packageToken: (object)

        Tokens are variables in content URLs that identify the customer. The token is text within the URL that needs to be replaced with an institute-specific value.

        Example:

        {
          "value": "hellotoken"
        }
        
      • proxy: (object)
        • id: required (string)

        Example:

        {
          "id": "EZ_Proxy"
        }
        

Example:

{
  "data": {
    "type": "packages",
    "attributes": {
      "name": "test package for documentation",
      "contentType": "Unknown",
      "customCoverage": {
        "beginCoverage": "2003-01-01",
        "endCoverage": "2003-12-01"
      },
      "isSelected": true,
      "visibilityData": {
        "isHidden": true
      },
      "packageToken": {
        "value": "hellotoken"
      },
      "proxy": {
        "id": "EZProxy"
      }
    }
  }
}

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "123355-2880981",
    "type": "packages",
    "attributes": {
      "contentType": "E-Book",
      "customCoverage": {
        "beginCoverage": "2003-01-01",
        "endCoverage": "2004-01-01"
      },
      "isCustom": true,
      "isSelected": true,
      "name": "yet another custom package again",
      "packageId": 2880981,
      "packageType": "Custom",
      "providerId": 123355,
      "providerName": "API DEV CORPORATE CUSTOMER",
      "selectedCount": 0,
      "titleCount": 0,
      "vendorId": 123355,
      "vendorName": "API DEV CORPORATE CUSTOMER",
      "visibilityData": {
        "isHidden": true,
        "reason": ""
      },
      "allowKbToAddTitles": true
    },
    "relationships": {
      "resources": {
        "meta": {
          "included": false
        }
      },
      "vendor": {
        "meta": {
          "included": false
        }
      },
      "provider": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 400

Bad Request

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": {
      "errors": [{
        "code": 1005,
        "subCode": 0,
        "message": "Attribute IsSelected is missing."
      }]
    }
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

Response 404

Not Found

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": {
      "errors": [{
        "code": 1001,
        "subCode": 0,
        "message": "Vendor not found"
      }]
    }
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

Response 422

Unprocessable Entity

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
      "title": "Invalid beginCoverage",
      "detail": "Begincoverage must be blank",
      "source": {}
    },
    {
      "title": "Invalid endCoverage",
      "detail": "Endcoverage must be blank",
      "source": {}
    }
  ],
  "jsonapi": {
    "version": "1.0"
  }
}

DELETE /eholdings/packages/{packageId}

Delete a specific custom package using packageId. Note that packageId is providerId-packageId

DELETE /eholdings/packages/{packageId}
URI Parameters
  • packageId: required (string)

Response 204

No Content

GET /eholdings/packages/{packageId}/resources

Include all resources belonging to a specific package

GET /eholdings/packages/{packageId}/resources
URI Parameters
  • packageId: required (string)
Query Parameters
  • sort: (one of name, relevance)

    Option by which results are sorted. Defaults to relevance if query or name if no query.

    Example:

    name
  • filter[selected]: (one of true, false, ebsco, all)

    Filter to narrow down results based on selection status. Defaults to all.

    Example:

    false
  • filter[type]: (one of all, audiobook, book, bookseries, database, journal, newsletter, newspaper, proceedings, report, streamingaudio, streamingvideo, thesisdissertation, website, unspecified)

    Filter to narrow down results based on resource type. Defaults to all.

    Example:

    book
  • filter[name]: (string)

    String to search title name to get a collection of titles

    Example:

    War and Peace
  • filter[isxn]: (string)

    String to search ISSN and ISBN to get a collection of titles

    Example:

    1050-3331
  • filter[subject]: (string)

    String to search subjects to get a collection of titles

    Example:

    history
  • filter[publisher]: (string)

    String to search publishers to get a collection of titles

    Example:

    academic

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": [{
      "id": "19-6581-581242",
      "type": "resources",
      "attributes": {
        "description": null,
        "edition": null,
        "isPeerReviewed": null,
        "isTitleCustom": false,
        "publisherName": "Wroclaw University of Environmental & Life Sciences",
        "titleId": 581242,
        "contributors": [],
        "identifiers": [{
            "id": "1644-065X",
            "type": "ISSN",
            "subtype": "Print"
          },
          {
            "id": "2083-8654",
            "type": "ISSN",
            "subtype": "Online"
          },
          {
            "id": "97C7",
            "type": "Mid",
            "subtype": "Empty"
          },
          {
            "id": "581242",
            "type": "BHM",
            "subtype": "Empty"
          }
        ],
        "name": "Acta Scientiarum Polonorum. Biotechnologia",
        "publicationType": "Journal",
        "subjects": [{
          "type": "TLI",
          "subject": "Biological Engineering"
        }],
        "coverageStatement": null,
        "customEmbargoPeriod": {
          "embargoUnit": null,
          "embargoValue": 0
        },
        "isPackageCustom": false,
        "isSelected": false,
        "isTokenNeeded": false,
        "locationId": 4829613,
        "managedEmbargoPeriod": {
          "embargoUnit": null,
          "embargoValue": 0
        },
        "packageId": "19-6581",
        "packageName": "EBSCO Biotechnology Collection: India",
        "url": "http://search.ebscohost.com/direct.asp?db=bti&jid=97C7&scope=site",
        "vendorId": 19,
        "vendorName": "EBSCO",
        "providerId": 19,
        "providerName": "EBSCO",
        "visibilityData": {
          "isHidden": false,
          "reason": ""
        },
        "managedCoverages": [{
          "beginCoverage": "2008-12-01",
          "endCoverage": ""
        }],
        "customCoverages": [],
        "proxy": null
      },
      "relationships": {
        "vendor": {
          "meta": {
            "included": false
          }
        },
        "provider": {
          "meta": {
            "included": false
          }
        },
        "title": {
          "meta": {
            "included": false
          }
        },
        "package": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "19-6581-2467485",
      "type": "resources",
      "attributes": {
        "description": null,
        "edition": null,
        "isPeerReviewed": null,
        "isTitleCustom": false,
        "publisherName": "AVS: Science & Technology of Materials, Interfaces, and Processing",
        "titleId": 2467485,
        "contributors": [],
        "identifiers": [{
            "id": "1934-8630",
            "type": "ISSN",
            "subtype": "Print"
          },
          {
            "id": "1559-4106",
            "type": "ISSN",
            "subtype": "Online"
          },
          {
            "id": "102667066",
            "type": "SPID",
            "subtype": "Empty"
          },
          {
            "id": "122153798",
            "type": "SPID",
            "subtype": "Empty"
          },
          {
            "id": "714936",
            "type": "EjsJournalID",
            "subtype": "Empty"
          },
          {
            "id": "2F7L",
            "type": "Mid",
            "subtype": "Empty"
          },
          {
            "id": "2248363",
            "type": "BHM",
            "subtype": "Empty"
          }
        ],
        "name": "Biointerphases",
        "publicationType": "Journal",
        "subjects": [{
          "type": "TLI",
          "subject": "Physics"
        }],
        "coverageStatement": null,
        "customEmbargoPeriod": {
          "embargoUnit": null,
          "embargoValue": 0
        },
        "isPackageCustom": false,
        "isSelected": false,
        "isTokenNeeded": false,
        "locationId": 4829582,
        "managedEmbargoPeriod": {
          "embargoUnit": null,
          "embargoValue": 0
        },
        "packageId": "19-6581",
        "packageName": "EBSCO Biotechnology Collection: India",
        "url": "http://search.ebscohost.com/direct.asp?db=bti&jid=2F7L&scope=site",
        "vendorId": 19,
        "vendorName": "EBSCO",
        "providerId": 19,
        "providerName": "EBSCO",
        "visibilityData": {
          "isHidden": false,
          "reason": ""
        },
        "managedCoverages": [{
          "beginCoverage": "2006-12-01",
          "endCoverage": ""
        }],
        "customCoverages": [],
        "proxy": null
      },
      "relationships": {
        "vendor": {
          "meta": {
            "included": false
          }
        },
        "provider": {
          "meta": {
            "included": false
          }
        },
        "title": {
          "meta": {
            "included": false
          }
        },
        "package": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "meta": {
    "totalResults": 157
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Providers

Collection of available providers in eholdings.

GET /eholdings/providers

Get a list of providers based on the search field.

GET /eholdings/providers
Query Parameters
  • q: (string)

    Text entered in search field

    Example:

    Basket Weaving
  • page: (number - minimum: 1)

    Page offset from which results are retrieved

    Example:

    1
  • count: (number - default: 25 - minimum: 0 - maximum: 100)

    The maximum number of results to return in the response.

    Example:

    10
  • sort: (one of name, relevance - default: relevance)

    Option by which results are sorted

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": [{
      "id": "19",
      "type": "providers",
      "attributes": {
        "name": "EBSCO",
        "packagesTotal": 627,
        "packagesSelected": 49,
        "providerToken": null,
        "supportsCustomPackages": false
      },
      "relationships": {
        "packages": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "273",
      "type": "providers",
      "attributes": {
        "name": "EBSCO Open Access Lists",
        "packagesTotal": 23,
        "packagesSelected": 6,
        "providerToken": null,
        "supportsCustomPackages": false
      },
      "relationships": {
        "packages": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "meta": {
    "totalResults": 2
  },
  "jsonapi": {
    "version": "1.0"
  }
}

GET /eholdings/providers/{provider_id}

Get the provider with providerId = {provider_id}

GET /eholdings/providers/{provider_id}
URI Parameters
  • provider_id: required (string)
Query Parameters
  • include: (packages - default: packages)

    Name of nested resource to include

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "419",
    "type": "providers",
    "attributes": {
      "name": "ecch",
      "packagesTotal": 2,
      "packagesSelected": 0,
      "supportsCustomPackages": false,
      "providerToken": {
        "factName":"siteid",
        "prompt":"/itweb/",
        "helpText":"<ul><li>Enter your token</li></ul>",
        "value": "123456"
      },
      "proxy": {
        "id": "EZProxy",
        "inherited": true
      }
    },
    "relationships": {
      "packages": {
        "data": [{
            "type": "packages",
            "id": "419-3402"
          },
          {
            "type": "packages",
            "id": "419-3291"
          }
        ]
      }
    }
  },
  "included": [{
      "id": "419-3402",
      "type": "packages",
      "attributes": {
        "contentType": "Abstract and Index",
        "customCoverage": {
          "beginCoverage": "",
          "endCoverage": ""
        },
        "isCustom": false,
        "isSelected": false,
        "name": "Case Online Information System - COLIS",
        "packageId": 3402,
        "packageType": "Complete",
        "providerId": 419,
        "providerName": "ecch",
        "selectedCount": 0,
        "titleCount": 1,
        "vendorId": 419,
        "vendorName": "ecch",
        "visibilityData": {
          "isHidden": false,
          "reason": ""
        },
        "allowKbToAddTitles": null
      },
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        },
        "vendor": {
          "meta": {
            "included": false
          }
        },
        "provider": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "419-3291",
      "type": "packages",
      "attributes": {
        "contentType": "Abstract and Index",
        "customCoverage": {
          "beginCoverage": "",
          "endCoverage": ""
        },
        "isCustom": false,
        "isSelected": false,
        "name": "European Case Clearing House Collection",
        "packageId": 3291,
        "packageType": "Complete",
        "providerId": 419,
        "providerName": "ecch",
        "selectedCount": 0,
        "titleCount": 1,
        "vendorId": 419,
        "vendorName": "ecch",
        "visibilityData": {
          "isHidden": false,
          "reason": ""
        },
        "allowKbToAddTitles": null
      },
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        },
        "vendor": {
          "meta": {
            "included": false
          }
        },
        "provider": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "jsonapi": {
    "version": "1.0"
  }
}

Response 404

Not Found

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": "Provider not found"
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

PUT /eholdings/providers/{provider_id}

This operation allows you to update provider proxy and token values for a specific provider ID.

PUT /eholdings/providers/{provider_id}
URI Parameters
  • provider_id: required (string)
Headers
  • Content-Type: required (string)

    Example:

    application/vnd.api+json
Body

Media type: application/vnd.api+json

Properties:

  • data: required (object)

    Needed because of JSON API

    • type: required (string)
    • attributes: required (object)

      Needed because of JSON API

      • providerToken: (object)

        Tokens are variables in content URLs that identify the customer. The token is text within the URL that needs to be replaced with an institute-specific value.

        Example:

        {
          "value": "hellotoken"
        }
        
      • proxy: (object)
        • id: required (string)

        Example:

        {
          "id": "EZ_Proxy"
        }
        

Example:

{
  "data": {
    "type": "providers",
    "attributes": {
      "providerToken": {
        "value": "hellotoken"
      },
      "proxy": {
        "id": "EZProxy"
      }
    }
  }
}

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "18",
    "type": "providers",
    "attributes": {
      "name": "Gale | Cengage",
      "packagesTotal": 243,
      "packagesSelected": 18,
      "providerToken": {
        "factName": "[[galesiteid]]",
        "prompt": "/itweb/",
        "helpText": "\u003cul\u003e\r\n    \u003cli\u003eEnter your Gale\u003csup\u003e®\u003c/sup\u003e site ID in the space provided below. The site ID may contain a combination of alpha/numeric characters, varying in length. \u003cblockquote style=\"margin-right: 0px;\" dir=\"ltr\"\u003e\r\n    \u003cp\u003e Example: The site ID immediately follows /itweb/ in a URL. The site ID in the following URL is \u003ci\u003eaa11bb22\u003c/i\u003e. \u003c/p\u003e\r\n    \u003c/blockquote\u003e\u003c/li\u003e\r\n\u003c/ul\u003e\r\n\u003cblockquote style=\"margin-right: 0px;\" dir=\"ltr\"\u003e\u003cblockquote style=\"margin-right: 0px;\" dir=\"ltr\"\u003e\r\n\u003cp\u003e\u003cspan style=\"text-decoration: underline;\"\u003ehttp://infotrac.galegroup.com/itweb/aa11bb22?db=AIM\u003c/span\u003e\u003c/p\u003e\r\n\u003c/blockquote\u003e\u003c/blockquote\u003e\u003cbr /\u003e\r\n\u003cul\u003e\r\n    \u003cli\u003eIf no site ID is specified, your Gale Group links may not function properly, as Gale Group requires this information for authentication. \u003c/li\u003e\r\n    \u003cli\u003eIf you are unable to locate the site ID, please contact Gale Group. For contact information, visit: \u003ca href=\"http://access.gale.com/authentication/\"\u003ehttp://access.gale.com/authentication/\u003c/a\u003e. \u003c/li\u003e\r\n\u003c/ul\u003e\r\n",
        "value": "hellotoken"
      },
      "supportsCustomPackages": false,
      "proxy": {
        "id": "EZProxy",
        "inherited": false
      }
    },
    "relationships": {
      "packages": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 500

Body

Media type: application/vnd.api+json

Type: any

GET /eholdings/providers/{provider_id}/packages

This operation allows you to retrieve a list of packages from EPKB for a provider including customer context.

GET /eholdings/providers/{provider_id}/packages
URI Parameters
  • provider_id: required (string)
Query Parameters
  • q: (string)

    Text entered in search field

    Example:

    Basket Weaving
  • page: (number - minimum: 1)

    Page offset from which results are retrieved

    Example:

    1
  • count: (number - default: 25 - minimum: 0 - maximum: 100)

    The maximum number of results to return in the response.

    Example:

    10
  • sort: (one of name, relevance - default: relevance)

    Option by which results are sorted

  • filter[selected]: (one of true, false, ebsco)

    Filter to narrow down results based on selection status

  • filter[type]: (one of all, aggregatefulltext, abstractandindex, ebook, ejournal, print, unknown, onlinereference - default: all)

    Filter to narrow down results based on content type

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": [{
    "id": "0-1117849",
    "type": "packages",
    "attributes": {
      "contentType": "Unknown",
      "customCoverage": {
        "beginCoverage": "",
        "endCoverage": ""
      },
      "isCustom": false,
      "isSelected": false,
      "name": "",
      "packageId": 1117849,
      "packageType": "Complete",
      "providerId": 0,
      "providerName": "System Account",
      "selectedCount": 0,
      "titleCount": 0,
      "vendorId": 0,
      "vendorName": "System Account",
      "visibilityData": {
        "isHidden": false,
        "reason": ""
      }
    },
    "relationships": {
      "resources": {
        "meta": {
          "included": false
        }
      },
      "vendor": {
        "meta": {
          "included": false
        }
      },
      "provider": {
        "meta": {
          "included": false
        }
      }
    }
  }]
}

Response 400

Bad Request

Body

Media type: application/vnd.api+json

Type: any

Resources

POST /eholdings/resources

Create a relation between an existing custom package and an existing custom/managed title.

POST /eholdings/resources
Headers
  • Content-Type: required (string)

    Example:

    application/vnd.api+json
Body

Media type: application/vnd.api+json

Properties:

  • data: required (object)

    Needed because of JSON API

    • type: required (string)
    • attributes: required (object)

      Needed because of JSON API

      • packageId: required (string)

        Id of the custom package to which the managed/custom title is to be associated. Note that packageId is a combination of vendorId-packageId.

        Example:

        123355-2845510
      • titleId: required (string)

        Id of the managed/custom title that needs to be associated to a custom package.

        Example:

        17059786
      • url: (string)

        Custom URL displaying the relationship between the custom package and custom/managed title.

        Example:

        https://hello.io

Example:

{
  "data": {
    "type": "resources",
    "attributes": {
      "packageId": "123355-2845510",
      "titleId": "17059786",
      "url": "https://hello.io"
    }
  }
}

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "123355-2845510-17059786",
    "type": "resources",
    "attributes": {
      "description": null,
      "edition": null,
      "isPeerReviewed": false,
      "isTitleCustom": true,
      "publisherName": null,
      "titleId": 17059786,
      "contributors": [],
      "identifiers": [],
      "name": "SD custom title",
      "publicationType": "Book",
      "subjects": [],
      "coverageStatement": null,
      "customEmbargoPeriod": {
        "embargoUnit": null,
        "embargoValue": 0
      },
      "isPackageCustom": true,
      "isSelected": true,
      "isTokenNeeded": false,
      "locationId": 0,
      "managedEmbargoPeriod": {
        "embargoUnit": null,
        "embargoValue": 0
      },
      "packageId": "123355-2845510",
      "packageName": "Testing2",
      "url": null,
      "vendorId": 123355,
      "vendorName": "API DEV CORPORATE CUSTOMER",
      "providerId": 123355,
      "providerName": "API DEV CORPORATE CUSTOMER",
      "visibilityData": {
        "isHidden": false,
        "reason": ""
      },
      "managedCoverages": [],
      "customCoverages": [],
      "proxy": {
        "id": "<n>",
        "inherited": true
      }
    },
    "relationships": {
      "vendor": {
        "meta": {
          "included": false
        }
      },
      "provider": {
        "meta": {
          "included": false
        }
      },
      "title": {
        "meta": {
          "included": false
        }
      },
      "package": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 400

Bad Request

Response 422

Unprocessable Entity

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": "Invalid PackageId",
    "detail": "Packageid Cannot associate Title with a managed Package",
    "source": {}
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

GET /eholdings/resources/{resourceId}

Retrieve a specific resource given resourceId. Note that a resource is a managed/custom title associated with a managed/custom package. resourceId is providerId-packageId-titleId

GET /eholdings/resources/{resourceId}
URI Parameters
  • resourceId: required (string)
Query Parameters
  • include: (one of provider, package, title)

    Include provider, package or title in response

    Example:

    provider

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "22-1887786-1440285",
    "type": "resources",
    "attributes": {
      "description": null,
      "edition": null,
      "isPeerReviewed": false,
      "isTitleCustom": false,
      "publisherName": "Elsevier",
      "titleId": 1440285,
      "contributors": [{
          "type": "Author",
          "contributor": "Havard, Margaret"
        },
        {
          "type": "Author",
          "contributor": "Tiziani, Adriana."
        }
      ],
      "identifiers": [{
          "id": "1440285",
          "type": "BHM",
          "subtype": "Empty"
        },
        {
          "id": "475765",
          "type": "EPBookID",
          "subtype": "Empty"
        },
        {
          "id": "978-0-7295-3913-5",
          "type": "ISBN",
          "subtype": "Print"
        },
        {
          "id": "978-0-7295-7913-1",
          "type": "ISBN",
          "subtype": "Online"
        }
      ],
      "name": "Havard's Nursing Guide to Drugs (Nursing Guide to Drugs)",
      "publicationType": "Book",
      "subjects": [{
        "type": "BISAC",
        "subject": "MEDICAL / Nursing / Pharmacology"
      }],
      "coverageStatement": "Only 2000s issues available.",
      "customEmbargoPeriod": {
        "embargoUnit": "Days",
        "embargoValue": 7
      },
      "isPackageCustom": false,
      "isSelected": true,
      "isTokenNeeded": true,
      "locationId": 17545807,
      "managedEmbargoPeriod": {
        "embargoUnit": null,
        "embargoValue": 0
      },
      "packageId": "22-1887786",
      "packageName": "ProQuest Ebook Central",
      "url": "https://ebookcentral.proquest.com/lib/[[SiteID]]/detail.action?docID=1722033",
      "vendorId": 22,
      "vendorName": "Proquest Info & Learning Co",
      "providerId": 22,
      "providerName": "Proquest Info & Learning Co",
      "visibilityData": {
        "isHidden": true,
        "reason": ""
      },
      "managedCoverages": [{
        "beginCoverage": "2010-01-01",
        "endCoverage": "2010-12-31"
      }],
      "customCoverages": [{
        "beginCoverage": "2003-01-01",
        "endCoverage": "2004-01-01"
      }],
      "proxy": {
        "id": "EZProxy",
        "inherited": false
      }
    },
    "relationships": {
      "vendor": {
        "meta": {
          "included": false
        }
      },
      "provider": {
        "data": {
          "type": "providers",
          "id": "22"
        }
      },
      "title": {
        "meta": {
          "included": false
        }
      },
      "package": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "included": [{
    "id": "22",
    "type": "providers",
    "attributes": {
      "name": "Proquest Info & Learning Co",
      "packagesTotal": 840,
      "packagesSelected": 30,
      "providerToken": null,
      "supportsCustomPackages": false,
      "proxy": {
        "id": "EZProxy",
        "inherited": true
      }
    },
    "relationships": {
      "packages": {
        "meta": {
          "included": false
        }
      }
    }
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

Response 400

Bad Request

Response 404

Not Found

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": "Title not found"
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

PUT /eholdings/resources/{resourceId}

Update a managed or custom resource using resourceId Note that resourceId is providerId-packageId-titleId

PUT /eholdings/resources/{resourceId}
URI Parameters
  • resourceId: required (string)
Headers
  • Content-Type: required (string)

    Example:

    application/vnd.api+json
Body

Media type: application/vnd.api+json

Properties:

  • data: required (object)

    Needed because of JSON API

    • type: required (string)
    • attributes: required (object)

      Needed because of JSON API

      • url: (string)

        Custom URL of a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        Example:

        https://hello.io
      • name: (string)

        Title name for a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        Example:

        Sample Title
      • isPeerReviewed: (boolean)

        Peer review indicator for a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        Example:

        true
      • publicationType: (one of Audiobook, Book, Book Series, Database, Journal, Newsletter, Newspaper, Proceedings, Report, Streaming Audio, Streaming Video, Thesis & Dissertation, Website, Unspecified)

        Publication Type for a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        Example:

        Newspaper
      • publisherName: (string)

        Publisher Name for a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        Example:

        ABC Publishing
      • edition: (string)

        Edition for a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        Example:

        5
      • description: (string)

        Description for a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        Example:

        Sample title description
      • contributors: (array of contributor)

        Contributors for a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        • type: required (one of Author, Editor, Illustrator)

          Example:

          Author
        • contributor: required (string)

        Example:

        {
          "type": "Author",
          "contributor": "Tiziani, Adriana."
        }
        

        Example:

        [
          {
            "type": "Author",
            "contributor": "Havard, Margaret"
          },
          {
            "type": "Illustrator",
            "contributor": "Tiziani, Adriana"
          }
        ]
      • identifiers: (array of identifier)

        Identifiers for a custom resource. Note that this attribute can be updated ONLY FOR A CUSTOM RESOURCE.

        • id: required (string)
        • type: required (one of ISSN, ISBN)

          Example:

          ISSN
        • subtype: required (one of Print, Online)

          Example:

          Print

        Example:

        {
           "id": "978-0-7295-3913-5",
           "type": "ISBN",
           "subtype": "Print"
         }
        

        Example:

        [
          {
            "id": "978-0-7295-3913-5",
            "type": "ISBN",
            "subtype": "Print"
          },
          {
            "id": "1996-0794",
            "type": "ISSN",
            "subtype": "Print"
          }
        ]
      • customCoverages: (array of customCoverage)

        Coverage dates of the custom or managed resource to be updated. Note that this attribute can be updated BOTH FOR CUSTOM RESOURCES AND MANAGED RESOURCES.

        • beginCoverage: required (string)
        • endCoverage: required (string)

        Example:

        {
          "beginCoverage": "2003-01-01",
          "endCoverage": "2003-12-01"
        }
        

        Example:

        [
          {
            "beginCoverage": "2018-06-03",
            "endCoverage": "2018-06-04"
          },
          {
            "beginCoverage": "2018-06-05",
            "endCoverage": "2018-06-06"
          }
        ]
      • isSelected: required (boolean)

        Selection of the managed or custom resource to be updated. Note that selection can be updated for BOTH CUSTOM AND MANAGED RESOURCES. For custom resources, if this is set to false, it disassociates the resource from the contained custom package. If the title is custom and is not associated with any other package, then the title will be deleted from the knowledge base. This param is required for a custom resource and is optional for a managed resource.

        Example:

        true
      • visibilityData: (object)

        Indicates whether resource should be hidden or visible to patrons. Note that this attribute can be updated both for CUSTOM AND MANAGED RESOURCES.

        • isHidden: required (boolean)

        Example:

        {
          "isHidden": true
        }
        
      • coverageStatement: (string)

        Coverage Statement of a managed or custom resource. Note that this attribute can be updated both for CUSTOM AND MANAGED RESOURCES.

        Example:

        Sample coverage statement
      • customEmbargoPeriod: (object)

        Custom Embargo of a managed or custom resource. Note that this attribute can be updated both for CUSTOM AND MANAGED RESOURCES.

        • embargoValue: required (number)
        • embargoUnit: required (string)

        Example:

        {
          "embargoValue": 4,
          "embargoUnit": "Weeks"
        }
        
      • proxy: (object)

        Ability to update selection of proxy for a custom or managed resource. Note that this attribute can be updated both for CUSTOM AND MANAGED RESOURCES.

        • id: required (string)

        Example:

        {
          "id": "EZ_Proxy"
        }
        

Example:

{
  "data": {
    "type": "resources",
    "attributes": {
     "name": "Updated Custom Title Name",
      "isPeerReviewed": true,
      "publicationType": "Newspaper",
      "publisherName": "Updated Publisher",
      "edition": "5",
      "description": "Updated Description",
      "url": "https://hello.io",
      "contributors": [
        {
        "type":"Author",
        "contributor":"smith, john"
        },
        {
        "type":"Illustrator",
        "contributor":"smith, ralph"
        }
      ],
      "identifiers": [
        {
        "id":"11-2222-3333",
        "type":"ISSN",
        "subtype":"Online"
        }      
      ],
      "isSelected": true,
      "visibilityData": {
        "isHidden" : false
      },
      "customEmbargoPeriod": {
        "embargoUnit" : "Months",
        "embargoValue" : 5
      },
      "customCoverages" : [
      {
        "beginCoverage" : "2001-01-01",
        "endCoverage" : "2004-02-01"
      }
      ],
      "coverageStatement": "Updated Coverage Statement",
      "proxy" : {
        "id" : "<n>"
      }
    }
  }
}

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "123355-2845510-17059786",
    "type": "resources",
    "attributes": {
      "description": null,
      "edition": null,
      "isPeerReviewed": false,
      "isTitleCustom": true,
      "publisherName": null,
      "titleId": 17059786,
      "contributors": [],
      "identifiers": [],
      "name": "SD custom title",
      "publicationType": "Book",
      "subjects": [],
      "coverageStatement": "hello",
      "customEmbargoPeriod": {
        "embargoUnit": "Weeks",
        "embargoValue": 4
      },
      "isPackageCustom": true,
      "isSelected": true,
      "isTokenNeeded": false,
      "locationId": 39248032,
      "managedEmbargoPeriod": {
        "embargoUnit": null,
        "embargoValue": 0
      },
      "packageId": "123355-2845510",
      "packageName": "\"Testing2\"",
      "url": "https://hello.io",
      "vendorId": 123355,
      "vendorName": "API DEV CORPORATE CUSTOMER",
      "providerId": 123355,
      "providerName": "API DEV CORPORATE CUSTOMER",
      "visibilityData": {
        "isHidden": true,
        "reason": ""
      },
      "managedCoverages": [],
      "customCoverages": [{
          "beginCoverage": "2018-06-05",
          "endCoverage": "2018-06-07"
        },
        {
          "beginCoverage": "2018-06-08",
          "endCoverage": "2018-06-10"
        }
      ],
      "proxy": {
        "id": "<n>",
        "inherited": true
      }
    },
    "relationships": {
      "vendor": {
        "meta": {
          "included": false
        }
      },
      "provider": {
        "meta": {
          "included": false
        }
      },
      "title": {
        "meta": {
          "included": false
        }
      },
      "package": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 400

Bad Request

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": "CoverageList cannot contain overlapping dates."
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

Response 404

Not Found

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": "Title not found"
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

Response 422

Unprocessable Entity

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
      "title": "Invalid beginCoverage",
      "detail": "Begincoverage must be blank",
      "source": {}
    },
    {
      "title": "Invalid endCoverage",
      "detail": "Endcoverage must be blank",
      "source": {}
    }
  ],
  "jsonapi": {
    "version": "1.0"
  }
}

DELETE /eholdings/resources/{resourceId}

Delete the association between a custom/managed title and a custom package using resourceId. Note that resourceId is providerId-packageId-titleId If the title is custom and is not associated with any other package, then the title will be deleted from the knowledge base.

DELETE /eholdings/resources/{resourceId}
URI Parameters
  • resourceId: required (string)

Response 204

No Content

Response 400

Bad Request

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": "Invalid resource",
    "detail": "Resource cannot be deleted",
    "source": {}
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

Response 404

Not Found

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [{
    "title": "Title not found"
  }],
  "jsonapi": {
    "version": "1.0"
  }
}

Titles

Collection of available titles in eholdings.

GET /eholdings/titles

Get a set of titles matching the given search criteria.

GET /eholdings/titles
Query Parameters
  • page: (integer - minimum: 1 - maximum: 2147483647)

    Page offset to retrieve results from Ebsco KB

    Example:

    1
  • count: (integer - default: 25 - minimum: 0 - maximum: 100)

    Count of number of results to retrieve from Ebsco KB

    Example:

    100
  • sort: (one of name, relevance)

    Option by which results are sorted. Defaults to relevance if query or name if no query.

    Example:

    name
  • filter[selected]: (one of true, false, ebsco, all)

    Filter to narrow down results based on selection status. Defaults to all.

    Example:

    false
  • filter[type]: (one of all, audiobook, book, bookseries, database, journal, newsletter, newspaper, proceedings, report, streamingaudio, streamingvideo, thesisdissertation, website, unspecified)

    Filter to narrow down results based on resource type. Defaults to all.

    Example:

    book
  • filter[name]: (string)

    String to search title name to get a collection of titles

    Example:

    War and Peace
  • filter[isxn]: (string)

    String to search ISSN and ISBN to get a collection of titles

    Example:

    1050-3331
  • filter[subject]: (string)

    String to search subjects to get a collection of titles

    Example:

    history
  • filter[publisher]: (string)

    String to search publishers to get a collection of titles

    Example:

    academic

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": [
    {
      "attributes": {
        "identifiers": [
          {
            "id": "100130",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A call to action: Changing the culture of drinking at U.S. colleges",
        "publicationType": "Journal",
        "publisherName": "National Institute on Alcohol Abuse and Alcoholism",
        "subjects": [
          {
            "subject": "Social Services",
            "type": "TLI"
          }
        ]
      },
      "id": "100130",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "125590",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "1093-9253",
            "subtype": "Print",
            "type": "ISSN"
          }
        ],
        "isTitleCustom": false,
        "name": "A and WMA Environmental Compliance News",
        "publicationType": "Journal",
        "publisherName": "Elsevier",
        "subjects": [
          {
            "subject": "Pollution Control & Waste Management",
            "type": "TLI"
          }
        ]
      },
      "id": "125590",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "169441",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-92-64-18255-4",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-1-280-03078-9",
            "subtype": "Online",
            "type": "ISBN"
          },
          {
            "id": "978-92-64-18256-1",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A Better World for All: Progress Towards the International Development Goals",
        "publicationType": "Book",
        "publisherName": "OECD Publications Centre",
        "subjects": [
          {
            "subject": "Development Economics",
            "type": "TLI"
          }
        ]
      },
      "id": "169441",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "169442",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-92-64-17007-0",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-1-280-08397-6",
            "subtype": "Online",
            "type": "ISBN"
          },
          {
            "id": "978-92-64-17259-3",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A Caring World: The New Social Policy Agenda",
        "publicationType": "Book",
        "publisherName": "OECD Publications Centre",
        "subjects": [
          {
            "subject": "Social Services",
            "type": "TLI"
          }
        ]
      },
      "id": "169442",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "200200065",
            "subtype": "Empty",
            "type": "Mid"
          },
          {
            "id": "183204",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-1-55798-843-0",
            "subtype": "Print",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A beginner's guide to the MCMI-III",
        "publicationType": "Book",
        "publisherName": "American Psychological Association",
        "subjects": []
      },
      "id": "183204",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "149900",
            "subtype": "Empty",
            "type": "EPBookID"
          },
          {
            "id": "2S63",
            "subtype": "Empty",
            "type": "Mid"
          },
          {
            "id": "210886",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-0-471-65128-4",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-0-471-75812-9",
            "subtype": "Online",
            "type": "ISBN"
          },
          {
            "id": "978-0-471-75813-6",
            "subtype": "Online",
            "type": "ISBN"
          },
          {
            "id": "978-1-280-34968-3",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A Basic Introduction to Pollutant Fate and Transport: An Integrated Approach with Chemistry, Modeling, Risk Assessment, and Environmental Legislation",
        "publicationType": "Book",
        "publisherName": "John Wiley & Sons Incorporated",
        "subjects": [
          {
            "subject": "Environmental Engineering",
            "type": "TLI"
          },
          {
            "subject": "SCIENCE / Chemistry / Organic",
            "type": "BISAC"
          }
        ]
      },
      "id": "210886",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "517665",
            "subtype": "Empty",
            "type": "EPBookID"
          },
          {
            "id": "2R31",
            "subtype": "Empty",
            "type": "Mid"
          },
          {
            "id": "210887",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-0-471-22490-7",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-0-471-22758-8",
            "subtype": "Online",
            "type": "ISBN"
          },
          {
            "id": "978-0-471-46118-0",
            "subtype": "Online",
            "type": "ISBN"
          },
          {
            "id": "978-1-280-55646-3",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A Biologist's Guide to Analysis of DNA Microarray Data",
        "publicationType": "Book",
        "publisherName": "John Wiley & Sons Incorporated",
        "subjects": [
          {
            "subject": "Physiology",
            "type": "TLI"
          },
          {
            "subject": "SCIENCE / Life Sciences / Molecular Biology",
            "type": "BISAC"
          }
        ]
      },
      "id": "210887",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "ZCAA",
            "subtype": "Empty",
            "type": "NewsbankID"
          },
          {
            "id": "272942",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A & G Information Service",
        "publicationType": "Newspaper",
        "publisherName": "New World Publishing",
        "subjects": [
          {
            "subject": "News",
            "type": "TLI"
          }
        ]
      },
      "id": "272942",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "286087",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A bill to amend the law relating to the employment of waitresses in restaurants.",
        "publicationType": "Book",
        "publisherName": "London, Eyre & Spottiswoode",
        "subjects": [
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "286087",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287713",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A bill to limit the hours of employment of women as bar assistants on premises where intoxicating liquors may be sold for consumption on the premises.",
        "publicationType": "Book",
        "publisherName": "London, Eyre & Spottiswoode",
        "subjects": [
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "287713",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287714",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A boarding home for working girls.",
        "publicationType": "Book",
        "publisherName": "Unspecified",
        "subjects": [
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "287714",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287715",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A book of duchesses : studies in personality",
        "publicationType": "Book",
        "publisherName": "A. Melrose",
        "subjects": [
          {
            "subject": "Personality",
            "type": "TLI"
          }
        ]
      },
      "id": "287715",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287716",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A book of noble women",
        "publicationType": "Book",
        "publisherName": "Small, Maynard",
        "subjects": [
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "287716",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287717",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A brief history of the movement for woman suffrage in the United States",
        "publicationType": "Book",
        "publisherName": "National Woman Suffrage Pub. Co.",
        "subjects": [
          {
            "subject": "United States History",
            "type": "TLI"
          },
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "287717",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287718",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A brief history of the Rhode Island Woman Suffrage Association during twenty-four years, from 1868 to 1893.",
        "publicationType": "Book",
        "publisherName": "E.L. Freeman",
        "subjects": [
          {
            "subject": "United States History",
            "type": "TLI"
          },
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "287718",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287719",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A brief memoir of Maria Fox, late of Tottenham.",
        "publicationType": "Book",
        "publisherName": "Association of Friends for the Diffusion of Religious and Useful Knowledge",
        "subjects": [
          {
            "subject": "Christianity",
            "type": "TLI"
          }
        ]
      },
      "id": "287719",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "2882",
            "subtype": "Empty",
            "type": "Mid"
          },
          {
            "id": "287720",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A brief memoir with portions of the diary, letters, and other remains, of Eliza Southall, late of Birmingham, England.",
        "publicationType": "Book",
        "publisherName": "Book Association of Friends",
        "subjects": [
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "287720",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287721",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A brief summary, in plain language, of the most important laws concerning women : together with a few observations thereon.",
        "publicationType": "Book",
        "publisherName": "J. Chapman",
        "subjects": [
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "287721",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "287722",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A brief summary, in plain language, of the most important laws of England concerning women : together with a few observations thereon",
        "publicationType": "Book",
        "publisherName": "Trubner",
        "subjects": [
          {
            "subject": "Law",
            "type": "TLI"
          },
          {
            "subject": "Women's Interest",
            "type": "TLI"
          }
        ]
      },
      "id": "287722",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "305515",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-1-885073-83-9",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-1-60780-124-5",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A basic guide to exporting, 3rd edition",
        "publicationType": "Book",
        "publisherName": "World Trade Press",
        "subjects": [
          {
            "subject": "Exportation & Importation",
            "type": "TLI"
          }
        ]
      },
      "id": "305515",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "309698",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-1-60566-500-9",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-1-60566-500-9",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A Case Study on a Security Maturity Assessment of a Business-to-Business Electronic Commerce Organization",
        "publicationType": "Book",
        "publisherName": "IGI Global",
        "subjects": [
          {
            "subject": "Electronic Commerce",
            "type": "TLI"
          }
        ]
      },
      "id": "309698",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "309725",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-1-59904-434-7",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A Case Study on Assessing the Readiness of Professional Services Company to Build an Organizational Memory Information Systems",
        "publicationType": "Book",
        "publisherName": "IGI Global",
        "subjects": [
          {
            "subject": "Information Technology",
            "type": "TLI"
          },
          {
            "subject": "Knowledge Management",
            "type": "TLI"
          }
        ]
      },
      "id": "309725",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "403769",
            "subtype": "Empty",
            "type": "EPBookID"
          },
          {
            "id": "315155",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-0-7735-2694-5",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-0-7735-7182-2",
            "subtype": "Online",
            "type": "ISBN"
          },
          {
            "id": "978-1-282-86176-3",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A Bare and Impolitic Right: Internment and Ukrainian-Canadian Redress",
        "publicationType": "Book",
        "publisherName": "McGill-Queen's University Press",
        "subjects": [
          {
            "subject": "World War I",
            "type": "TLI"
          },
          {
            "subject": "HISTORY / Canada / General",
            "type": "BISAC"
          }
        ]
      },
      "id": "315155",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "317428",
            "subtype": "Empty",
            "type": "BHM"
          }
        ],
        "isTitleCustom": false,
        "name": "A Case Study of Sustainable Development: Brownfields",
        "publicationType": "Book",
        "publisherName": "Environmental Law Institute",
        "subjects": [
          {
            "subject": "Land Use Planning",
            "type": "TLI"
          }
        ]
      },
      "id": "317428",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    },
    {
      "attributes": {
        "identifiers": [
          {
            "id": "142423",
            "subtype": "Empty",
            "type": "EPBookID"
          },
          {
            "id": "318444",
            "subtype": "Empty",
            "type": "BHM"
          },
          {
            "id": "978-1-349-50750-4",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-1-4039-0112-5",
            "subtype": "Print",
            "type": "ISBN"
          },
          {
            "id": "978-0-230-00589-1",
            "subtype": "Online",
            "type": "ISBN"
          },
          {
            "id": "978-1-280-28270-6",
            "subtype": "Online",
            "type": "ISBN"
          }
        ],
        "isTitleCustom": false,
        "name": "A Brontë Family Chronology (Author Chronologies)",
        "publicationType": "Book",
        "publisherName": "Institute for Urban Design (US)",
        "subjects": [
          {
            "subject": "English Literature",
            "type": "TLI"
          },
          {
            "subject": "Women Authors",
            "type": "TLI"
          },
          {
            "subject": "LITERARY CRITICISM / European / English, Irish, Scottish, Welsh",
            "type": "BISAC"
          }
        ]
      },
      "id": "318444",
      "relationships": {
        "resources": {
          "meta": {
            "included": false
          }
        }
      },
      "type": "titles"
    }
  ],
  "jsonapi": {
    "version": "1.0"
  },
  "meta": {
    "totalResults": 8987
  }
}

POST /eholdings/titles

Create a new Custom Title.

POST /eholdings/titles
Headers
  • Content-Type: required (string)

    Example:

    application/vnd.api+json
Body

Media type: application/vnd.api+json

Properties:

  • data: required (object)

    Needed because of JSON API

    • type: required (string)
    • attributes: required (object)

      Needed because of JSON API

      • name: required (string)

        Name of the new title that is to be created.

        Example:

        A New Title For You
      • publicationType: required (one of All, Audiobook, Book, Book Series, Database, Journal, Newsletter, Newspaper, Proceedings, Report, Streaming Audio, Streaming Video, Thesis & Dissertation, Website, Unspecified)

        Publication type for new title.

        Example:

        Book
  • included: required (array of includedPackageId)

    Resource used to create new title.

    • type: required (string)
    • attributes: required (object)
      • packageId: required (string)

    Example:

    {
      "type": "resources",
      "attributes": {
        "packageId": "123-456"
      }
    }
    

Example:

{
  "data": {
    "type": "titles",
    "attributes": {
      "name": "Your Brand New Title",
      "publicationType": "Book"
    }
  },
  "included": [
    {
      "type": "resources",
      "attributes": {
        "packageId": "123355-2868997"
      }
    }
  ]
}

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "attributes": {
      "contributors": [],
      "description": null,
      "edition": null,
      "identifiers": [],
      "isPeerReviewed": false,
      "isTitleCustom": true,
      "name": "Your Brand New Title",
      "publicationType": "Book",
      "publisherName": null,
      "subjects": []
    },
    "id": "17649810",
    "relationships": {
      "resources": {
        "meta": {
          "included": false
        }
      }
    },
    "type": "titles"
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 400

Bad

GET /eholdings/titles/{title_id}

Get the title by its unique identifier.

GET /eholdings/titles/{title_id}
URI Parameters
  • title_id: required (string)
Query Parameters
  • include: (resources)

    Include related resource obects, each representing a partnering of this title with a package. Any bogus value, like include=deciduousTrees, will be silently ignored.

    Example:

    resources

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "attributes": {
      "contributors": [],
      "description": null,
      "edition": null,
      "identifiers": [
        {
          "id": "100130",
          "subtype": "Empty",
          "type": "BHM"
        }
      ],
      "isPeerReviewed": false,
      "isTitleCustom": false,
      "name": "A call to action: Changing the culture of drinking at U.S. colleges",
      "publicationType": "Journal",
      "publisherName": "National Institute on Alcohol Abuse and Alcoholism",
      "subjects": [
        {
          "subject": "Social Services",
          "type": "TLI"
        }
      ]
    },
    "id": "100130",
    "relationships": {
      "resources": {
        "meta": {
          "included": false
        }
      }
    },
    "type": "titles"
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 404

Not Found

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [
    {
      "title": "Title not found"
    }
  ],
  "jsonapi": {
    "version": "1.0"
  }
}

Proxy Types

List of supported root proxy types.

GET /eholdings/proxy-types

Get a list of supported root proxy types.

GET /eholdings/proxy-types

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": [
    {
      "id": "<n>",
      "type": "proxyTypes",
      "attributes": {
        "id": "<n>",
        "name": "None",
        "urlMask": ""
      }
    },
    {
      "id": "EZProxy",
      "type": "proxyTypes",
      "attributes": {
        "id": "EZProxy",
        "name": "EZProxy",
        "urlMask": "http://ezproxy.myinstitute.edu/login?url={targetURL}"
      }
    },
    {
      "id": "TestingFolio",
      "type": "proxyTypes",
      "attributes": {
        "id": "TestingFolio",
        "name": "TestingFolio",
        "urlMask": "https://folio.frontside.io"
      }
    }
  ],
  "jsonapi": {
    "version": "1.0"
  }
}

Root Proxy

Root Proxy that is currently selected from proxy-type list.

GET /eholdings/root-proxy

ID of root proxy that is currently selected from proxy-type list.

GET /eholdings/root-proxy

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "root-proxy",
    "type": "rootProxies",
    "attributes": {
      "id": "root-proxy",
      "proxyTypeId": "EZProxy"
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

PUT /eholdings/root-proxy

Update the current root proxy setting by selecting one from the supported list of proxy-types.

PUT /eholdings/root-proxy
Headers
  • Content-Type: required (string)

    Example:

    application/vnd.api+json
Body

Media type: application/vnd.api+json

Properties:

  • data: required (object)

    Needed because of JSON API

    • type: required (string)
    • attributes: required (object)

      Needed because of JSON API

      • proxyTypeId: required (string)

        ID of root-proxy that current selection should be updated to.

        Example:

        EZProxy

Example:

{
  "data": {
    "type": "rootProxies",
    "attributes": {
      "proxyTypeId": "EZProxy"
    }
  }
}

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "root-proxy",
    "type": "rootProxies",
    "attributes": {
      "id": "root-proxy",
      "proxyTypeId": "EZProxy"
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 422

Unprocessable Entity

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [
    {
      "title": "Invalid id",
      "detail": "Id :Invalid proxy",
      "source": {}
    }
  ],
  "jsonapi": {
    "version": "1.0"
  }
}

Configuration

Setup KB Configuration.

GET /eholdings/configuration

Details of KB configuration currently being used.

GET /eholdings/configuration

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "configuration",
    "type": "configurations",
    "attributes": {
      "customerId": "apidvcorp",
      "apiKey": "****************************************",
      "rmapiBaseUrl": "https://api.ebsco.io"
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

PUT /eholdings/configuration

Update the currently set KB configuration.

PUT /eholdings/configuration
Headers
  • Content-Type: required (string)

    Example:

    application/vnd.api+json
Body

Media type: application/vnd.api+json

Properties:

  • data: required (object)

    Needed because of JSON API

    • type: required (string)
    • attributes: required (object)

      Needed because of JSON API

      • customerId: required (string)

        Customer ID using the KB.

        Example:

        apidvgvmt
      • apiKey: required (string)

        API Key to use the KB.

        Example:

        xxxxxx
      • rmapiBaseUrl: required (string)

        Base URL of the KB.

        Example:

        https://sandbox.ebsco.io

Example:

{
  "data": {
    "type": "configurations",
    "attributes": {
      "customerId": "apidvcorp",
      "apiKey": "****************************************",
      "rmapiBaseUrl": "https://api.ebsco.io"
    }
  }
}

Response 200

OK

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "configuration",
    "type": "configurations",
    "attributes": {
      "customerId": "apidvcorp",
      "apiKey": "****************************************",
      "rmapiBaseUrl": "https://api.ebsco.io"
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}

Response 422

Unprocessable Entity

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "errors": [
    {
      "title": "Invalid KB API Credentials",
      "detail": "Kb api credentials are invalid",
      "source": {}
    }
  ],
  "jsonapi": {
    "version": "1.0"
  }
}

Status

Gives status of currently set KB configuration.

GET /eholdings/status

Gives status of currently set KB configuration.

GET /eholdings/status

Response 200

Body

Media type: application/vnd.api+json

Type: any

Example:

{
  "data": {
    "id": "status",
    "type": "statuses",
    "attributes": {
      "isConfigurationValid": true
    }
  },
  "jsonapi": {
    "version": "1.0"
  }
}