in reply to How do I make a multipart/mixed request (for REST API) in Perl?

You are going to have to do heavy lifting here still, with the auth/authz steps and managing the tokens and the user agent and the actual requests and response parsing, but this should get you over your first hurdle–

#!/usr/bin/env perl use strictures; use HTTP::Request::Common; use JSON; use URI; my $endpoint = URI->new("https://www.googleapis.com/batch"); my %writer = ( emailAddress => 'example@appsrocks.com', role => "writer", type => "user" ); my %domain = ( reader => "appsrocks.com", role => "reader", type => "domain" ); my $request1 = POST "https://some.uri/you/must/construct", Authorization => "Bearer MOOOOOOOKEN", Content_Type => "application/json; charset=UTF-8", Content => encode_json(\%writer); my $request2 = POST "https://some.uri/you/must/also/construct", Authorization => "Bearer MOOOOOOOKEN", Content_Type => "application/json; charset=UTF-8", Content => encode_json(\%domain); my $top = POST $endpoint, Accept => "gzip", User_Agent => "YourMomsCooking/0.00001"; $top->add_part( $request1, $request2 ); # Here, you would pass the request to a WWW::Mechanize object or somes +uch. print $top->as_string;

Related reading: HTTP::Request::Common, URI, JSON, HTTP::Message, and WWW::Mechanize. (Update: added URI refs.)

  • Comment on Re: How do I make a multipart/mixed request (for REST API) in Perl?
  • Download Code

Replies are listed 'Best First'.
Re^2: How do I make a multipart/mixed request (for REST API) in Perl?
by YenForYang (Beadle) on Nov 28, 2017 at 18:17 UTC

    Points me to exactly what I was looking for, thanks.

    My thanks to everyone else who replied to this node, they were all helpful.

      It's an interesting question and topic. I hope if you get it working to your satisfaction you will come back and post it as a Cool Uses for Perl or on the Google forums or github or anywhere others can benefit from your initiative in making the API work with Perl.

Re^2: How do I make a multipart/mixed request (for REST API) in Perl?
by genio (Beadle) on Nov 29, 2017 at 16:45 UTC

    Thank you for pointing out the proper way to do this! We should have some documentation updates coming in the next release of HTTP::Message.

    A pull request to get things started has been entered.

    Thanks again!