Now Ian Mulvany talking about Mendeley and how they use APIs – both publishing and consuming.
Try to expose all the metadata being added by users via an API – a “social catalogue”. This enables ‘discovery’, but not ‘delivery’ – this is where Mendeley can make use of external APIs – such as the WorldCat API.
Mendeley invest in APIs because
- It helps them extend their product, but integrating data/functionality from other places
- It enables others to extend their product – they don’t have time to build everything that users are asking for. E.g. Android client built by users, as company didn’t have the resource
Mendeley uses WorldCat registry to find/suggest appropriate OpenURL resolver depending on users location – as most users won’t know what an OpenURL resolver is, or what the detail are.
Mendeley uses OAuth – which means they can integrate with institutional repositories and a users own publications in Mendeley – going to be live soon (working with JISC, Symplectic and University of Cambridge on this – http://jisc-dura.blogspot.com/). Learnt a lot about consuming their own APIs in this project – and uncovered bugs…
“We should have built the API first, and the product second” – the fact they didn’t now creating work. Now they are creating a new application for libraries, and building API first. Ian firmly believes this is a better approach.
Ian’s top 10 tips for API provision:
- first API, then app
- use your own APIs (and he believes Mendeley should do this more)
- make an (API) interface you would use yourself
- provide lots of example docs – coders like to do stuff quickly – if they can get something working from an example quickly, they’ll then invest
- version your API – backwards compatible
- put rate limits in place
- work with a 3rd party to provide keys
- have clear licensing
- engage with your community
- promote, promote, promote, promote, promote
In terms of consuming:
- know what you want to do
- define the value – this may be service delivery, or could be development of skills for developers etc.
- measure the value – otherwise difficult to prioritise future developments
- understand the SLA
- if it’s important – have a backup plan – dependence on 3rd party is a risk which you should manage
- don’t wait on API for page loads – found that Mendeley homepage was waiting for a response from an API was down, and so the page didn’t load…
- get on the mailing list/dev group
- look for good example code
- don’t be afraid to pay – if it’s important, it’s worth paying for
- use Mendeley’s APIs 😉