Web Services : SOAP, REST, XML, JSON
Get flash to fully experience Pearltrees
De plus en plus d’entreprises ont besoin de rendre leurs applications accessibles sur le web. Les motivations sont multiples : élargir l’audience des utilisateurs, vendre des services en ligne, faire communiquer des applications existantes ou supporter une interface de type AJAX.
Subscribe to this blog About Author Computer industry veteran Simon Phipps is at large in the open source movement and sending dispatches with the latest news from the inside.
Google just announced that they are getting ready to kill their SOAP API . XML+SOAP was a good milestone in the history of integration but it is now time to look at the next milestone and that next milestone is JSON+REST. We briefly talked about that in abstract terms a couple of years ago but here are 3 simple reasons why: Reason #1 JSON is a lot simpler than XML+XML Schema and is more isomorphic with the relational data stores most services use for persistence.
Managing changes to APIs is hard. That is no surprise to anyone who has ever maintained an API of any sort. Web services, being a special case of API, are susceptible to many of the difficulties around versioning as other types of APIs. For HTTP based REST style web services the combination of resources and content negotiation can be used to mitigate most of the issues surrounding API versioning.
In my previous post on this subject I described an approach to versioning the API of a REST/HTTP web service. This approach has significant advantages over the approach that is currently most common (i.e. embedding a version token in the URL). However, it does have some downsides. This post is an attempt to outline those and to present some ways to mitigate the negative impacts. Using content negotiation to manage versions requires, by definition, the introduction of nonstandard media types.
Jean-Jacques Dubray takes issue with my approach of using content negotiation to manage service versioning in HTTP. I actually hesitate to respond to Mr. Dubray because the overall tone of his piece is rather off putting. On the other hand, he raises a couple of interesting questions which I have been really looking for and excuse to talk about.
One of the least well understood core tenets of the REST architectural style is that “hypermedia is the engine of application state”. Which basically means that responses from the server will be documents that include URIs to everything you can do next. For example, if GET a blog post the response document will have URIs embedded in it that allow you to create a comment, edit the post and any other action that you might want to do. Basically, this allows you to think of your application as a state machine with every page representing a state and links representing every possible transition from the current state . This approach means that to correctly be access your application the only things a client needs to know is a) a well know starting point URI and b) how to parse one of the document formats (representations) your application supports. For human facing web applications this approach is the one that is always used.
In an exclusive nine-part dialogue with an imaginary eBay Architect , we present an accessible discussion of the REST vs. SOA issue. Although eBay have what they call a 'REST' interface, it is, in fact, a STREST interface, and only works for one of the many function calls that they make available via SOAP (GetSearchResults). In this dialogue series , I argue the case for eBay to adopt a truly REST approach to their integration API.
The vast majority of supposedly 'REST' Web APIs are simply abusing HTTP to carry function calls. I call these APIs 'Service-Trampled REST', or STREST. STREST APIs come with specific costs which could stifle the two-way data Web (Web2.0) if allowed to propagate unchecked.
The following post was written by Manu Sporny, Digital Bazaar’s Founder and CEO. Recently a few XML experts have been claiming that the decision made by large Web Service providers, like Twitter and Foursquare, to drop XML from their Web Services infrastructure is not very interesting news. They also assert that the claims that JSON is more useful than XML for the majority of Web Services is wishful thinking by a “cadre of Web API designers” that have yet to provide “richer APIs”.
A global model for sharing information, once a dream, and then a reality with the Internet and the Web, is now becoming a fundamental part of the systems that we build. As we automate much of the sharing of information, we need to be able to express this shared data to computers in a way that is both easy for them to process and also easy for web developers to understand. The foundational standards of the web, specifically global naming conventions ( IRI s), distributed computing ( web servers and clients ) and remote data access ( TCP/IP and HTTP ) are positively impacting the way we build software. One of the areas that this standardization is lacking is with the way that we build data services for the Web using JSON . This article discusses some new work that attempts to merge the power of Linked Data with the simplicity of JSON.
Abstract This specification details the serialization of a stream of social activities using the JSON format. Activities are important in that they allow individuals to process the latest news of people and things they care about. Table of Contents 1.