=pod
=head1 NAME
Webservice::InterMine::Cookbook - how to run Webservice::InterMine webservice queries
=head1 DESCRIPTION
The Webservice::InterMine cookbook is a set of short tutorial 'recipes'
which aim to demonstrate particular features of the Webservice::InterMine
Perl API. Each recipe presents some code, followed by a section
which explains and discusses the features used.
=head1 RECIPES
=over
=item L<Webservice::InterMine::Cookbook::Recipe1> - The bare basics
The bare minimum you need to create and run a valid
Webservice::InterMine query from scratch
=item L<Webservice::InterMine::Cookbook::Recipe2> - Adding constraints
Queries without constraints are not very useful, so here
we look at how to add some simple constraints to your searches
=item L<Webservice::InterMine::Cookbook::Recipe3> - More constraints
There are several different constraint types, distinguished
by their operators; this recipe introduces all the main
constraint types.
=item L<Webservice::InterMine::Cookbook::Recipe4> - Other Query Features
This recipe presents the other potential features of a query:
joins and path descriptions
=item L<Webservice::InterMine::Cookbook::Recipe5> - Dealing with Results
Once you have your query working the way you want it to, you
will then need to deal with the results it returns - this recipe
introduces the different result formats and how to access your data
=item L<Webservice::InterMine::Cookbook::Recipe6> - Advanced Results Management
This recipe looks at using iteration, and ways that you can use
features such as filtering results, limiting them, and processing
them in a stream.
=item L<Webservice::InterMine::Cookbook::Recipe7> - Extending Webservice::InterMine
The Perl API is written to be easily extensible with Moose roles - so
if there is something you wish it could do, it probably can: here we
look at adding different output formats to queries.
=item L<Webservice::InterMine::Cookbook::Recipe8> - Saving Queries
B<NOT IMPLEMENTED YET>
You can save queries you run to the webservice so that you
can access them anywhere you are. They can then be accessed
from the webservice and run within Perl.
=item L<Webservice::InterMine::Cookbook::Templates::Recipe1> - Accessing Templates
You don't have to create all your own queries - much of the
work has been done for you with re-usable 'Templates' available from the
webservice - here we look at the basics of calling a template
=item L<Webservice::InterMine::Cookbook::Templates::Recipe2> - Authoring Templates
B<NOT IMPLEMENTED YET>
Your scripted queries can be saved to the web-service
as templates, making them as portable as the web-service itself,
and as powerful as any other template.
=back
=head1 AUTHOR
Alex Kalderimis C<dev@intermine.org>
=head1 BUGS
Please report any bugs or feature requests to C<dev@intermine.org>.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Webservice::InterMine
You can also look for information at:
=over 4
=item * InterMine
L<http://www.intermine.org>
=item * Documentation
L<http://www.intermine.org/perlapi>
=back
=head1 COPYRIGHT AND LICENSE
Copyright 2006 - 2010 FlyMine, all rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
use strict;
use warnings;
use Webservice::InterMine 'flymine';
require Data::Dumper;
my $query = Webservice::InterMine->new_query(class => 'Gene');
my $results = $query->select('symbol', 'primaryIdentifier', 'pathways.*')
->where(symbol => [qw/h H bib eve zen/])
->all();
print Data::Dumper->new([$results])->Dump;
$results = $query->one;
print Data::Dumper->new([$results])->Dump;
$results = $query->first;
print Data::Dumper->new([$results])->Dump;