Boost logo

Boost Users :

Subject: Re: [Boost-users] Is there a straightforward Boost API for REST Web services calls
From: Rob Desbois (rob.desbois_at_[hidden])
Date: 2012-07-05 04:27:38


On 4 July 2012 21:37, Adam J Cooper <adam_at_[hidden]> wrote:

> I am new to Boost and definitely still a novice with C++ in general.****
>
> ** **
>
> I would like to use Amazon Web Services (AWS) with C++.****
>
> ** **
>
> AWS supplies tookits (APIs) for .Net, Java, etc. However, they do not
> supply an API for C++.****
>
> ** **
>
> Therefore, I believe the best way for me to interact with AWS using C++
> will be with REST.****
>

REST is more of a loose idea than a specific API or architecture, however
there are some bits and pieces that will help you.

> My rationale for wanting to use C++ is that I enjoy the flexibility and
> aesthetics of C++ and want to continue to find opportunities to learn and
> practice with it. (I do not have a specific application need and could use
> the AWS .Net API for my project if I needed to).
>

Aesthetics?! Lol, each to their own :-D

****
>
> Having said that, I understand that Boost is one of the most
> highly-regarded add-on libraries for C++. Therefore, is there a Boost
> library that will EASILY allow me to make REST (get and post) calls? If
> not, can someone recommend another well-tested and widely used C++ library
> that would allow me to make such REST calls?****
>

I'm not sure 'EASILY' applies at all - there are several technologies
involved here (networking, HTTP, JSON/XML/similar) and a stack of libraries
is more usual for the c++ world than an all-in-one library that'll do it
for you. A quick Google search seems to confirm that there's no magic
bullet.

In case it's of any help, here are the libraries I'm currently using or am
aware of:

http://cpp-netlib.github.com/latest/index.html for networking
Supports both client & server implementations, though I've only used the
client API.
I found the docs a little slow to sink in, as they're a little more
implementation-focused than objective-focused, but the group is active and
the primary developer helpful and very approachable.

http://curl.haxx.se/libcurl/ is a well-known library for URL access and
supports a wide variety of protocols.
I've had no direct experience of it myself, but it's pretty ubiquitous so
support should be easy to access.
It may be easier to use for a c++ newbie than cpp-netlib which is template
heavy.

http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implementedfor
JSON [de]serialisation.
I'm using this at the moment, though the API seems..'odd' to me in some
ways.
I found some inconsistencies between docs and code, and between the built
and include-only versions of the library.

If you're still green with c++ I'd probably recommend
http://jsoncpp.sourceforge.net/ over json_spirit.
I've not used it in a year or 2, and it's not boost-based, but docs are
helpful and it worked well for me at the time.

More JSON library discussion at
http://stackoverflow.com/questions/245973/whats-the-best-c-json-parser

HTH :-)

-- 
Rob Desbois
http://theotherbranch.wordpress.com/
"I disapprove of what you say, but I’ll defend to the death your right to
say it", Voltaire


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net