====== Web Services Notes ====== ===== General Documentation ===== * [[http://java.sun.com/webservices/docs/2.0/tutorial/doc/|The Java Web Services Tutorial]] (Java Web Services Developer Pack (JWSDP) 2.0) - February, 2006 * [[http://nordsc.com/ext/classification_of_http_based_apis.html|Classification of HTTP APIs]] ===== REST ===== ==== HTTP ==== * [[http://www.w3.org/Protocols/rfc2616/rfc2616.html|Hypertext Transfer Protocol -- HTTP/1.1]] === Methods === Idempotent - no matter how many times you apply the operation, the result is always the same. \\ Safe - the operation does not change the state of the resource representation. * GET - Idempotent, safe * PUT (Update) - Idempotent * POST (Create) - Not idempotent, not safe * DELETE - Idempotent ==== Resources ==== * [[http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm|Architectural Styles and the Design of Network-based Software Architectures]] - Roy T. Fielding's dissertation. * [[http://www.infoq.com/articles/rest-introduction|InfoQ: A Brief Introduction to REST]] * [[http://bitworking.org/news/373/An-Introduction-to-REST|An Introduction to REST]] (Video) * [[http://www.infoq.com/articles/webber-rest-workflow|InfoQ: How to GET a Cup of Coffee]] - A case study * [[http://my.safaribooksonline.com/9781449383312|REST in Practice]] (Book) ==== JAX-RS & Jersey ==== * [[https://jsr311.dev.java.net/nonav/releases/1.1/spec/spec.html|JAX-RS: Java™ API for RESTful Web Services]] (v1.1) - September, 2009 * [[http://jersey.java.net/|Jersey]] - JAX-RS (JSR 311) Reference Implementation ==== RESTEasy ==== * [[http://jboss.org/resteasy|RESTEasy]] - A JBoss framework for writing RESTful web services * [[http://jboss.org/resteasy/docs|RESTEasy JAX-RS Documentation]] * [[http://blog.esofthead.com/develop-restful-application-with-resteasy/|Develop Restful application with RESTeasy]] (Tutorial) ==== AtomPub ==== * [[http://www.ietf.org/rfc/rfc5023.txt|The Atom Publishing Protocol (RFC 5023)]] * [[http://atomserver.codehaus.org/|AtomServer ]] - A generic data store implemented as a RESTful web service. * [[http://abdera.apache.org/|Apache Abdera]] - A functionally-complete, high-performance implementation of the IETF Atom Syndication Format (RFC 4287) and Atom Publishing Protocol (RFC 5023) specifications. * [[http://code.google.com/p/atomojo/|atomojo]] - An Atom Publishing Protocol Client & Server * "Getting to know the Atom Publishing Protocol" developerWorks Article: * [[http://www.ibm.com/developerworks/xml/library/x-atompp1/index.html|Part 1: Create and edit Web resources with the Atom Publishing Protocol]] * [[http://www.ibm.com/developerworks/xml/library/x-atompp2/index.html|Part 2: Put the Atom Publishing Protocol (APP) to work]] * [[http://www.ibm.com/developerworks/xml/library/x-atompp3/index.html|Part 3: Introducing the Apache Abdera project]] ===== SOA / ESB ===== * [[http://enterpriseintegrationpatterns.com/|Patterns and Best Practices for Enterprise Integration]] * [[http://architects.dzone.com/news/top-open-source-esbs|Top Open Source ESB Projects]] * [[http://www.sonicsoftware.com/products/whitepapers/docs/best_of_breed_esbs.pdf|Best-of-Breed ESBs]] * [[http://www.infoq.com/presentations/soa-without-esb|InfoQ: Does My Bus Look Big in This?]] - SOA without ESB presentation by Martin Fowler and Jim Webber ==== Open Source ESB ==== * [[http://www.mulesoft.com/mule-esb-open-source-esb|Mule ESB]] * [[http://petals.ow2.org/|Petals ESB]] * [[http://fusesource.com/products/enterprise-servicemix/|FUSE ESB]] / [[http://servicemix.apache.org/home.html|Apache ServiceMix]]