VuFind APIs - A practical approach

Slides:



Advertisements
Similar presentations
2011 NetIS Presentation The Complete ePublishing Platform Designed for the 21 st Century.
Advertisements

PubMed/History; Accessing Full-Text Articles (module 4.4)
AAI for Apps Using AAI with your Smartphone Daniel Latzer Zürich, April 2013
EFRONT V4 EXTENSIONS ARCHITECTURE. The goal  To offer more flexibility to 3 rd party users to modify eFront functionality  To further extend eFront.
Accessing and Using the e-Book Collection from EBSCOhost ® When an arrow appears, click to proceed to the next slide at your own pace. To go back, click.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
WebVoyáge Enhancer Ere Maijala The National Library of Finland Voyager Developer meets Developer 2010.
Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
UWWD In our quest to eliminate bad websites, we present…. HALLELUJAH!!
LHCbPR V2 Sasha Mazurov, Amine Ben Hammou, Ben Couturier 5th LHCb Computing Workshop
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Building Secure Applications.
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
Lecturer: Ghadah Aldehim
DB-19: OpenEdge® Authentication Without the _User Table
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
Classroom User Training June 29, 2005 Presented by:
South Dakota Library Network MetaLib Management Basics Adding Resources South Dakota Library Network 1200 University, Unit 9672 Spearfish, SD
ADC Meeting ICEO Standards Working Group Steven F. Browdy, Co-Chair ADC Workshop Washington, D.C. September, 2007.
TriUlti Senior Project iFlowEdit HTML5 Canvas Workflow Diagram Editor Sponsored By iNNOVA IT Solution Inc.
IFORM ACCOUNT MAINTENANCE ICT4D SESSION 4. IFORMBUILDER WEBSITE REQUIREMENTS To access the iFormBuilder website, you need the following items: -Reliable.
Web Applications Testing By Jamie Rougvie Supported by.
What's New in Kinetic Calendar 2.0 Jack Boespflug Kinetic Data.
Extend the Operations Dashboard with Custom Widgets (and more)
Extending the Operations Dashboard
Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)
Web2.0 Secure Development Practice Bruce Xia
Satisfy Your Technical Curiosity 27, 28 & 29 March 2007 International Convention Center (ICC) Ghent, Belgium.
Securing Angular Apps Brian Noyes
Esri UC 2014 | Demo Theater | Using ArcGIS Online App Logins in Node.js James Tedrick.
Combining ArcGIS for Server & ArcGIS Online Julia Guard and Matt Monson.
ASSIGNMENT 2 Salim Malakouti. Ticketing Website  User submits tickets  Admins answer tickets or take appropriate actions.
Shibboleth at USMAI David Kennedy Spring 2006 Internet2 Member Meeting, April 24-26, 2006 – Arlington, VA.
This material is based upon work supported by the U.S. Department of Energy Office of Science under Cooperative Agreement DE-SC Michigan State.
: Information Retrieval อาจารย์ ธีภากรณ์ นฤมาณนลิณี
Open Map Yamama Dagash & Haitham Khateeb under the supervision of: Benny Daon & Eyal Levin Open Map.
Industrial Control Engineering Session 1 Introduction  What is RADE  Technology  Palette  Tools  Template  Combined Example  How to get RADE 
Kausikram Krishnasayee
Alain Bethuyne Web Security Architect BNPParibas Fortis
Ask the Experts – Building Login-Based Sites in AEM
Outline The basic authentication problem
Using Moodle for Ongoing Professional Development
Scholarly Workflow: Federal Prototype and Preprints
LAMS 2.0 Architecture. LAMS 2.0 Architecture Agenda LAMS 2.0: Technical Aims Architecture Technologies LAMS Core LAMS Tool Contract External Tools.
Remember that our latest topics involve a more advanced look at how webpages work
Using E-Business Suite Attachments
User Manual INDEX DATAFILES.
Data Virtualization Tutorial… OAuth Example using Google Sheets
Welcome to the 20th Anniversary of the IUG
EBSCO eBooks.
Server Concepts Dr. Charles W. Kann.
The Database Application
All about social networking
UNIT 15 Webpage Creator.
PHP / MySQL Introduction
Identity Federations - Installation and operation
Principles of report writing
BY: SHIVI AGRAWAL ( ) CSE-(6)C
The Re3gistry software and the INSPIRE Registry
Introduction to Smart Search
CDISC SHARE API v1.0 CAC Update 22 February 2018
DotnetConf 11/17/ :06 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
Testing RESTful Web APIs
API DOCUMENTATION Swetha Mohandas Microsoft Connect 2016
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
User Registration.
Technical Integration Guide
CS5220 Advanced Topics in Web Programming Secure REST API
PDS, Primo, Aleph, MetaLib, SFX General workflow
Combining ArcGIS for Server & ArcGIS Online
Sending a text message (and more)
Presentation transcript:

VuFind APIs - A practical approach Ere Maijala VuFind Summit 2016

”APIs are great, can we add them?” ”Like, for what?” Types of APIs Backend Front-end Interactive Generic What’s common A request comes in The request is processed There’s a predefined structured outcome ”Like, when you enter a URL in the browser, you get some HTML?” ”No, see, structured.”

Shibboleth Single Logout ”Users’ sessions don’t end properly in the Identity Provider, do something!” Backend API Between Shibboleth Service Provider and VuFind When Shibboleth logout is processed, an API in VuFind is called to signal that the session must be terminated On login, the Shibboleth session id is stored in VuFind database mapped to VuFind session id On logout, this mapping is used to terminate the VuFind session Shibboleth chains the logout requests so that they propagate to all services Already available in vufind-org/master https://vufind.org/wiki/configuration:shibboleth

External Authentication - EZproxy ”So we moved from MetaLib to Finna [VuFind] and you still expect us to send users to MetaLib for EZproxy authorization?” Interactive API EZproxy redirects user to VuFind upon login VuFind prompts the user to log in (if not already) If the user is authorized, VuFind redirects back to EZproxy with a ticket Ticket is a hash from a shared secret and other details If authorization fails, user is informed in VuFind Already available in vufind-org/master https://vufind.org/wiki/configuration:ezproxy

Search API ”We are creating Cool Service X and we would like to access your search index” A generic API Work in progress Based on a practical approach (read: do something really quickly and try to make it nice later) Oops, a front-end service now becomes a backend others depend on

Search API Goals Simple Easy to use with modern tools (JSON, CORS, Swagger specification) Parameters as similar as possible to the search functionality in the VuFind UI Extensible with local fields etc. Easy to extend with new functionality Take advantage of record drivers Support API versioning from get-go Use permissions

Search API Development Steps First proof of concept: extend search results view=rss with view=json Test it out Move it to a separate controller Create documentation Publish the API with VuFind 2 (Feb 2016) Gather feedback and improve on it Most feedback has been about the content and index features, not the API implementation Contribute upstream: https://github.com/vufind-org/vufind/pull/819 Separate module for the API functionality Other awesome improvements in architecture thanks to Demian’s comments

Future API Development Possibilities Low-hanging fruits Read access to public lists Read access to record comments Other indexes like authorities Advanced search, maybe In the middle Token authorization with e.g. JWT (JSON Web Tokens) Holdings and new items from the ILS Possibly other read-only ILS APIs Rate limits Usage limits Content-type negotiation (if something else than JSON is needed) High above Read-write APIs

Search API Demo Our local production version at https://api.finna.fi/ Docs: https://www.kiwi.fi/pages/viewpage.action?pageId=53839221 Upstream version at [my computer]: http://localhost:8080/vufind2/api

Ere Maijala ere.maijala@helsinki.fi Not bad, huh? Ere Maijala ere.maijala@helsinki.fi