Skip to content

Generate working links to e-collection records #87

@mksndz

Description

@mksndz

Alma "E-Collection" records currently fail to get a properly proxied link displayed in Franklin. See: https://franklin.library.upenn.edu/catalog/FRANKLIN_9977806853403681

E-Collections do not return any "holding" records in the Alma API availability lookup. As a result, Franklin calls the Alma API again for e-collection info, which returns the URL for the e-collection, but the returned link devoid of any proxy prefix. This is bad for users.

As a solution, we can appropriate Alma's Link Resolver to retrieve a valid Link Resolver URL for e-collections using this URL scheme:

https://upenn.alma.exlibrisgroup.com/view/uresolver/01UPENN_INST/openurl?&u.ignore_date_coverage=true&rft.mms_id=9977806853403681&rfr_id=info:sid/primo.exlibrisgroup.com&svc_dat=CTO

This returns some XML that contains a resolver URL that we can use in Franklin to properly set the EZProxy prefix for the resource:

<uresolver_content>
  <context_services>
    <context_service service_type="DB" context_service_id="26412423330003681">
      <keys>
        <key id="portfolio_PID">61647149460003681</key>
        ....
      </keys>
      <resolution_url>
        <!-- THIS IS THE URL WE NEED FOR DISPLAY -->
        https://upenn.alma.exlibrisgroup.com/view/action/uresolver.do?operation=resolveService&package_service_id=26412423330003681&institutionId=3681&customerId=3680
      </resolution_url>
      <target_url>
        http://proxy.library.upenn.edu/login?&url=http://search.ebscohost.com/login.aspx?authtype=ip,uid&profile=ehost&defaultdb=hia
      </target_url>
    </context_service>
   ...
  </context_services>
</uresolver_context>

I wish there was a better way, but there's no API endpoint that will return this URL. The URL itself contains a package_service_id identifier that is always unique - I believe to support Link Resolver statistics.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions