Giter Club home page Giter Club logo

librest-oauth-proxy's Introduction

librest
=======

This library has been designed to make it easier to access web services that
claim to be "RESTful". A reasonable definition of what this means can be found
on Wikipedia [1]. However a reasonable description is that a RESTful service
should have urls that represent remote objects which methods can then be
called on.

However it should be noted that the majority of services don't actually adhere
to this strict definition. Instead their RESTful end-point usually has an API
that is just simpler to use compared to other types of APIs they may support
(XML-RPC, for instance.). It is this kind of API that this library is
attempting to support.

It comprises of two parts: the first aims to make it easier to make requests
by providing a wrapper around libsoup [2], the second aids with XML parsing by
wrapping libxml2 [3].

Making requests
~~~~~~~~~~~~~~~

When a proxy is created for a url you are able to present a format string.
This format string is intended to represent the type of path for a remote
object, it is then possible to bind this format string with specific names of
objects to make this proxy concrete rather than abstract. We abstract the
parameters required for a particular call into it's own object which we can
then invoke both asynchronously and pseudo-asynchronously (by spinning the
main loop whilst waiting for an answer.) This has the advantage of allowing us
to support complex behaviour that depends on the parameters, for instance
signing a request: a requirement for many web services.

Handling the result
~~~~~~~~~~~~~~~~~~~

Standard XML parsers require a significant amount of work to parse a piece of
XML. In terms of a SAX parser this involves setting up the functions before
hand, in terms of a DOM parser this means dealing with complexity of a DOM
tree. The XML parsing components of librest are designed to try and behave a
bit like the BeautifulSoup parser [4]. It does this by parsing the XML into an
easily walkable tree were nodes have children for their descendents and
siblings for the nodes of the same type that share the same parent. This makes
it easy for instance to get a list of all the "photo" nodes in a document from
the root.

[1] - http://en.wikipedia.org/wiki/Representational_State_Transfer
[2] - http://live.gnome.org/LibSoup
[3] - http://xmlsoft.org/
[4] - http://www.crummy.com/software/BeautifulSoup/

librest-oauth-proxy's People

Contributors

afranke avatar cgwalters avatar eeejay avatar elmarco avatar hadess avatar jonner avatar joshuagl avatar lcp avatar mdwood-intel avatar mhr3 avatar ovitters avatar rossburton avatar townxelliot avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

idzhi isora

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.