WEB SITES, APPS &
OPEN DATA
Building on the CIOC APIPresentation by Mark Walther
WHAT IS AN API?
• A set of routines, protocols, and tools for building software applications
• APIs often come in the form of a library that includes specifications for routines, data structures, object classes, and variables
• In some cases an API is simply a specification of remote calls
Application Programming Interface (API)
WHAT IS AN API?
• A means of communication:
– App to app or software to software
– Highly automated
– Usually no user interfaces
– Send a request -- get a response
Application Programming Interface (API)
EXAMPLES of POPULAR APIs
Google Maps
EXAMPLES of POPULAR APIs
Facebook, Twitter, LinkedIn
EXAMPLES of POPULAR APIs
YouTube, AccuWeather, Amazon
WHY HAVE AN API?
1. Scaling Development
2. Converting Competitors Into Partners
3. Scaling Market Research
4. Empowering Users
WHY HAVE AN API?
• Add and enhance a program without having to get into the guts of the program itself
• Allows groups of developers (internal, partners or contract developers) anywhere in the world to enhance the product with minimal coordination
• Provides the opportunity to add value to your product outside of your regular development cycle
• Users who develop or purchase products that work on an API-based application are more reluctant to try alternatives because of the investment users have made in the product
Scaling Development
WHY HAVE AN API?
• Allow competitors to build solutions on top of your product’s functionality
• Leverage the existing capabilities of your program and enhance it by using their expertise and know-how to create new and innovative solutions
• Avoids duplication of functionality• In return, they can get access to your user base or open up new markets for you with less investment in software development from either side
Converting Competitors Into Partners
WHY HAVE AN API?
• Tap into markets and geographies you would not otherwise have the resources or expertise to get into
• An API offers the possibility of creating or modifying features to suit specific markets and it can also help automate the creation of content relevant to your market
Scaling Market Research
WHY HAVE AN API?
• Empower end-users by making their product do things the original developers did not build into the product
• Let the users customize the product to better fit their needs and workflow
• Solve specific or specialized problems with less effort and development
Empowering Users
EXAMPLES of POPULAR APIs
iOS & Android APIs for Mobile Development
$10 Billion Dollar App Marketplaces
2 Million+ Apps
THE CIOC API
• It is designed to be a flexible general purpose solution for embedding search results and record details on another (non-CIOC) site
• It is intended to be used in real-time, in that a request to the remote site results in a request to this API
• This API is available in both Community Information and Volunteer modules
Designed to be Flexible
THE CIOC API
How does it work?
Request from External Source
Response from CIOC Application
Internet
THE CIOC API
Setting Up CIOC for API Access
• Setup a view, a user and a user type – similar to how you would create a new view within CIOC
• The user and password will be used in the request over https (secure)
• Within the view, you can limit the responses to a specific set of records as defined in your view
• You can setup which fields the API user can retrieve to limit the output to only relevant information
THE CIOC API
Structuring the API Request
• Search:https://username:password@https://yoursite.cioc.ca/rpc/orgsearch.asp
The parameters will mimic what you can do within your CIOC database
• Record Details: https://username:password@https://yoursite.cioc.ca/rpc/record/NUM
where NUM is the record number
THE CIOC API
Understanding the Response
• The CIOC API will return the data in either JSON (JavaScript Object Notation) or XML (Extensible Markup Language)
• Both are widely supported in most modern programming languages including ASP.NET, Objective C, Java, JavaScript and PHP
THE CIOC API
Why use the API?
1. Create custom web sites
2. Develop mobile Apps
3. Data analysis and visualization
4. Future applications (Apple Watch?)
THE CIOC API
Custom Web Sites
211nb.ca
• Built on WordPress
• Custom functionality
• Custom design & layout
THE CIOC API
Custom Mobile Applications
211North
• iPhone App
• Keyword search
• Search by taxonomy
• View map of results
• Add to favourites
• One touch to connect to 211
THE CIOC API
Open Data – Analysis & Visualization
Open Data Project
• Map organizations with othedata sets
• Analyze results
• Visualize on maps
THE CIOC API
Best Practices
• Sanitize your input
• Test all possible scenarios
• It is difficult for CIOC to filter bad requests including problematic bots and unwanted traffic
• You are responsible for traffic and requests originating from your application
THE CIOC API
Questions?
Update on the State of CIOC
• KCL will continue to support CIOC under a different service model (12-16 month contract)
• New features to be released in the coming months
• CIOC is planning to move to back to Open Source
• CIOC continues to be the most powerful, flexible and fully-bilingual data management tool available
Advantages of an Open Source Model
• Reach new markets
• Build a larger user base
• Grow a diverse developer community
• More options for future development
• Have a model to allow new innovations to be added into the open source repository
• Release the full potential of the CIOC software
Current Status of Open Source Transition
• Outside experts have joined the transition team to assist in our due diligence process
• Transition expected to start phasing in this year
• New software distribution licenses, governance model
Questions?