API

FacebookTwitter
http://blog.programmableweb.com/2010/08/13/api-anti-patterns-how-to-avoid-common-rest-mistakes/

API Anti-Patterns: How to Avoid Common REST Mistakes

Web APIs typically use REST style for communication while moving away from more traditional SOAP web services. Our ProgrammableWeb service directory currently lists around 1500 services which are using REST , and around 360 using SOAP . Why is REST becoming so popular and what are the common mistakes in the REST API design? Graphic from Open APIs: a State of the Market
JSON ( pron.: / ˈ dʒ eɪ s ən / JAY -sun , pron.: / ˈ dʒ eɪ s ɒ n / JAY -sawn ), or JavaScript Object Notation , is a text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays , called objects. Despite its relationship to JavaScript, it is language-independent , with parsers available for many languages. The JSON format was originally specified by Douglas Crockford , and is described in RFC 4627 . http://en.wikipedia.org/wiki/JSON

JSON

Status: Maintenance JCP version in use: 2.7 Java Specification Participation Agreement version in use: 2.0 Description : This JSR will develop an API for providing support for RESTful(Representational State Transfer) Web Services in the Java Platform. Please direct comments on this JSR to the Spec Lead(s) Updates to the Java Specification Request (JSR) The following information has been updated from the original JSR : Maintenance Lead: Marek Potociar

The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 311

http://www.jcp.org/en/jsr/detail?id=311

Fielding Dissertation: CHAPTER 5: Representational State Transfer (REST)

http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm [ Top ] [ Prev ] [ Next ] This chapter introduces and elaborates the Representational State Transfer (REST) architectural style for distributed hypermedia systems, describing the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, while contrasting them to the constraints of other architectural styles. REST is a hybrid style derived from several of the network-based architectural styles described in Chapter 3 and combined with additional constraints that define a uniform connector interface. The software architecture framework of Chapter 1 is used to define the architectural elements of REST and examine sample process, connector, and data views of prototypical architectures. 5.1 Deriving REST
http://www.ibm.com/developerworks/webservices/library/ws-restful/ The basics REST defines a set of architectural principles by which you can design Web services that focus on a system's resources, including how resource states are addressed and transferred over HTTP by a wide range of clients written in different languages. If measured by the number of Web services that use it, REST has emerged in the last few years alone as a predominant Web service design model. In fact, REST has had such a large impact on the Web that it has mostly displaced SOAP- and WSDL-based interface design because it's a considerably simpler style to use. REST didn't attract this much attention when it was first introduced in 2000 by Roy Fielding at the University of California, Irvine, in his academic dissertation, "Architectural Styles and the Design of Network-based Software Architectures," which analyzes a set of software architecture principles that use the Web as a platform for distributed computing (see Resources for a link to this dissertation).

RESTful Web services: The basics

http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

REST APIs must be hypertext-driven » Untangled

I am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today’s example is the SocialSite REST API . That is RPC.
http://www.pacificspirit.com/blog/2004/06/14/protocol_extensibility_and_versioning

Protocol Extensibility and Versioning - Dave Orchard's Blog

I've argued for a while now that extensibility and versioning are important topics, and it's incredibly important for data formats to plan for evolvability . I've already argued that you must have substitution mechanisms in place for V1 , otherwise it's impossible to evolve formats. I've refined my argument that compatibility should be thought of at the the message level, and how to think about synch/asynch compatibility as combinations of compatibility of the messages that make up the message exchange pattern. But what about protocols?

ietf-httpbis-p3-payload-16 - HTTP/1.1, part 3: Message Payload and Content Negotiation

[ Docs ] [ txt | pdf ] [ Tracker ] [ WG ] [ Email ] [ Diff1 ] [ Diff2 ] [ Nits ] Versions: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 HTTPbis Working Group R. Fielding, Ed. Internet-Draft Adobe Obsoletes: 2616 (if approved) J. http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-16#section-5.2

RFC 5988 - Web Linking

[ Docs ] [ txt | pdf ] [ draft-nottingham-... ] [ Diff1 ] [ Diff2 ] [ Errata ] PROPOSED STANDARD Errata Exist Internet Engineering Task Force (IETF) M. Nottingham Request for Comments: 5988 October 2010 Updates: 4287 Category: Standards Track ISSN: 2070-1721 Abstract This document specifies relation types for Web links, and defines a registry for them. It also defines the use of such links in HTTP headers with the Link header field. http://tools.ietf.org/html/rfc5988
Tuesday, 25 October 2011 A lot of bits have been used over on the OpenStack list recently about versioning the HTTP APIs they provide . This over-long and rambling post summarises my current thoughts on the topic, both as background for that discussion, as well as for review in the wider community. The Warm-up: Software vs.

s blog: Web API Versioning Smackdown

http://www.mnot.net/blog/2011/10/25/web_api_versioning_smackdown