Designing and Implementing Web Data Services in Perl

This video is in English.
Length: 53:16
Source: YAPC::NA 2014 on the 2014-06-25.
Speaker: Michael McClennen
abstract

Perl is a language almost perfectly designed for implementing Web data services. But even with this marvelous language and the plethora of useful CPAN modules that we have available, designing and implementing a useful, efficient and well-documented data service is no easy task.

This talk will address the major points that need to be considered in designing and implementing a Perl-based data service. The primary example will be the speaker's recent implementation of a data service for The Paleobiology Database (http://paleobiodb.org/data1.1/); other examples will be presented for contrast and to highlight different implementation choices and their consequences.

The talk is aimed at attendees who are either in the process of implementing a web data service or are planning to do so in the future. It will provide concrete guidance about what questions need to be asked, what decisions need to be made, and the pros and cons of various implementation choices. The following points will be discussed:

  • Choice of frameworks
  • HTTP server
  • Web application framework
  • Data framework
  • Cacheing framework
  • Important protocols
  • HTTP
  • CORS
  • JSON
  • Parameter validation
  • Error reporting
  • The principle of Integral Documentation
  • Handling multiple output formats and vocabularies
  • Cacheing and cache gotchas
  • Character sets
  • Basic principles of REST

All of these considerations and more have been addressed in the modules HTTP::Validate and Web::DataService, coming soon to CPAN. The talk will include a brief overview of these modules, but will not focus exclusively on them.