Dave Johnson on open web technologies, social software and software development
JIRA's got a real REST API now:
REST easy with JIRA 5 | Atlassian Blogs: Now that JIRA 5 is out, lets talk about one of my favorite features of this new release, JIRAs new REST API. JIRA has supported remote APIs for many years with SOAP, XML-RPC, and JSON-RPC. However, telling developers that you support SOAP (and only SOAP) is like saying that you like writing applications with COBOL its out of style. Todays cool kids gravitate towards REST. Its clean, simple, and highly portable across languages and frameworks.
And checkout the nice looking API docs, which look like they were generated by WADL-to-HTML.
An alternative to Atlassian's new API is the recently release Rational OSLC Adapter for JIRA, which allows you to do more sophisticated integrations with JIRA including delegated UIs for issue creation and selection.
Dave Johnson in Web Development
04:20AM Mar 01, 2012
Tags:
jira
json
oslc
rest
I've been working on the OSLC Core specification for about 1.5 years now as workgroup lead, and OSLC fits squarely under the "open web technologies" and Web Integration Patterns topics of this blog, so I'm blogging this happy news.
Here's the announcement From the OSLC Core Workgroup mailing list:
From: Dave Johnson To: oslc-core (a) open-services.net, community (a) open-services.net Subject: OSLC Core v2 specification now FINAL Today [1], I'm very happy to announce that the OSLC Core v2 specification is FINAL. The OSLC Core v2 specification [2] defines a set of REST and Linked Data-based patterns, resources and protocols for integration of application and product lifecycle resources (ALM and PLM). It's designed to be the foundation for all other OSLC domain specifications and there are now three final OSLC specifications that are based on the Core, those being the OSLC Change Management (CM) [3], OSLC Quality Management (QM) [4] and OSLC Requirements Management (RM) [5] specs. I'd like to thank all of the members of the OSLC Core Workgroup and community for their hard work, critical thinking and ability to work together in such a productive and pleasant way. Also, special thanks to those OSLC domain workgroups who rebased their work on the Core and development teams that provided excellent feedback along the way. Thanks, - Dave -- David M. Johnson OSLC Core Workgroup Lead IBM Rational Software [1] Move to final was proposed last week, along with a small set of changes which have since been applied to the specification. [2] OslcCoreSpecification [3] CmSpecificationV2 [4] QmSpecificationV2 [5] RmSpecificationV2
I really do have another Web Integration Patterns post on the way shortly, so stay tuned.
Dave Johnson in IBM
10:38AM Jun 01, 2011
Comments [0]
Tags:
asf
linkeddata
oslc
rest
wip
Dave Johnson in Social Software
06:10AM Mar 06, 2009
Comments [0]
Tags:
apacheroller
openoauth
opensocial
rest
Roy Fielding: 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. It screams RPC. There is so much coupling on display that it should be given an X rating.
Ouch! As the author of the torrid (and pretty rough) Project SocialSite Proposal: Finalize Web Services APIs proposal that Roy calls out to sharply, I'd like to point of that, as I explained in a recent post, Project SocialSite is simply implementing and extending the OpenSocial API. OpenSocial includes both a JSON-RPC API and a REST API. SocialSite implements and extends them both. I never meant to imply that the JSON-RPC API is RESTful (and neither did the authors of the OpenSocial specifications). In fact, I renamed the proposal from "Finalize REST APIs" to "Finalize Web Services APIs" after I realized that OpenSocial would come in both flavors.
The proposal that I wrote outlined a way for Project SocialSite to hook into Apache Shindig (incubating), the Reference Implementation of OpenSocial,implement a couple of Shindig interfaces and thus gain support for both the OpenSocial REST API and the OpenSocial JSON-RPC API. The OpenSocial REST API does claim to be RESTful and I believe it is; it's based on AtomPub but includes some extensions for providing generic XML and JSON representations in addition to Atom format. The Project SocialSite REST API will extend that and will also be RESTful.
Dave Johnson in Social Software
06:48AM Oct 20, 2008
Comments [6]
Tags:
rest
socialsite
A lot has changed since I did my first and even my second "how does Shindig/Java work" diagram. Believe it or not, there are now two separate web services protocols in OpenSocial and thus in Shindig. How did that happen you wonder, well read on...
[Read More]
Dave Johnson in Social Software
12:09PM Sep 23, 2008
Comments [5]
Tags:
atompub
opensocial
rest
shindig
From the Seam Framework team's wiki page on JSF2 major issues:
The JSF2 expert group should work closely with the JSR 311 expert group to define overlapping integration points (unified configuration) and programming models, so that a JSF implementation can work seamlessly with a JAX-RS implementation. For example, a @Path annotated POJO should work as a JSF backing bean without any additional configuration. A JSF application programmer should be able to expose RESTful remote APIs easily.
Right on.
Via Matt Raible
Dave Johnson in General
04:27AM Aug 26, 2008
Comments [0]
Tags:
java
jsf
rest
Here's a diagram I worked up over the weekend to explain Shindig REST API internals to my team mates. See the Project SocialSite blog for the full story.
<img src="http://blogs.sun.com/socialsite/resource/how-shindig-works-200808.png" alt="diagram of key classes and interfaces of Apache Shinding REST API" />
Dave Johnson in Social Software
01:02PM Aug 11, 2008
Comments [0]
Tags:
atompub
json
rest
shindig
socialsite
JSF spec lead Ed Burns just pointed out that some of my Sun-internal comments about JSF have made it outside the firewall and into an issue on the JSF specification project:
On Wed, 19 Mar 2008, David M Johnson said:
I think the goal should be to make JSF applications RESTful by default, with proper use of GET and POST, i.e. only use POST when application data is changing, not for component state. Another goal should be clean, book-markable URLs that only carry path-info and parameters needed by the application logic.
That's easy and the default situation with Rails, Grails, Struts, etc. How hard would it be to redesign JSF along those lines? Would it require EJB2 -> EJB3 level changes to JSF?
I suspect work on JSF 2.0 is too far along for this kind of change now, but it's nice to hear that the idea of a truly RESTful JSF is at least under consideration.
Dave Johnson in Java
11:52AM Aug 08, 2008
Comments [0]
Tags:
java
jsf
rest
Dave Johnson in Links
10:00AM Apr 21, 2008
Comments [0]
Tags:
rest
roller
I've been very happy with the choice of Struts 2 for Roller, but I still follow JSF because it's the Java standard. A couple of articles by Ryan Lubke about what's coming in JSF 2.0 got me thinking about JSF again.
One of my problems with JSF is REST. REST fans say JSF is inherently RESTless because every JSF request is a POST. JSF advocates say JSF can do GET and bookmarkable URLs if necessary and that's good enough.
Fortunately, the plans for JSF 2.0 indicate that REST improvements are coming:
Unfortunately, it sounds like all they're planning to do is make it easier to create bookmarkable URLs and add some support for the JSF-311 REST API. Why can't the goal be to make JSF applications RESTful by default? Why can't JSF ensure that POST is only used when required by the application (not the framework) and JSF URLs are simple, clean and always bookmarkable.
Dave Johnson in Links
08:27AM Feb 18, 2008
Comments [2]
Tags:
java
jsf
rest
Project Zero introduces a simple environment for creating, assembling and executing applications based on popular Web technologies. The Project Zero environment includes a scripting runtime for Groovy and PHP with application programming interfaces optimized for producing REST-style services, integration mash-ups and rich Web interfaces.Smells a lot like Phobos (see also Phobos Meets Atom, REST), but Phobos is focusing on server-side JavaScript first. Oh, and Phobos is open source. Project Zero is not.
"This community is an experiment in a new way to build commercial software, an approach we are currently calling Community-Driven Commercial Development. Community-Driven means that we want feedback, insight, suggestions, criticism, and dialogue with you, the users of Project Zero. This interaction will yield a better solution that is more targeted at the problems you have and a technology that truly delivers on its objectives. Commercial means that this is not an open source project."Community-driven? Sounds like the community is a back-seat driver with freedom to complain but no access to the steering wheel, gas pedal or breaks.
Dave Johnson in Java
05:28AM Jul 02, 2007
Comments [10]
Tags:
groovy
java
rest
Joe turns a #redmonk IRC chat-room discussion into an insightful Steven O'Grady style Q&A on REST, WADL, interfaces and APP. For the record, I still think WADL is going to be useful to many, but I think APP is going to be a whole lot more useful and it doesn't need or use WADL.
Update: Pat Meuller has more on the WADL question. Apparently, there were some interesting hallway discussions about about out at IBM RTP. I just caught the tail-end of that on IRC.
Dave Johnson in Feeds
01:57PM Jun 05, 2007
Comments [0]
Tags:
app
rest
wadl
Atom and LDAP sitting in a tree. Trey Drake has released his OpenDS based Atom store as an open source project on Java.net at http://atom.dev.java.net. It's a directory server distributed as a Java web application that supports both Atom Publishing Protocol (APP) and Lightweight Directory Access Protocol (LDAP).
Signing, encrypting and decrypting Atom. On IBM developerWorks, Nicolas Chase explains how "digital signatures and encryption can easily mesh with Atom data using the Apache Abdera API."
Google GData: A Uniform Web API for All Google Services. Dare Obasanjo praises Google for creating a single uniform and RESTful web services API for eight of its key services, the APP based GData API. He writes "not only is it now possible to create a single library that knows how to talk to all of Google's existing and future Web
services since they all use GData. It is also a lot easier to provide 'tooling' for these services than it would be for Yahoo's family of Web
services given that they use a simple and uniform interface."
RESTful web services support in Netbeans. Geertjan links to blog entries and a screen-cast that explain Netbeans 6.0 support for RESTful web services, including the early access JSR-311 REST API.
Generate code from your WADL REST API. Eduardo at The Aquarium links to Thomas Steiner who is making progress on a WADL editor and a generator, bringing WSDL-like code generation to RESTful web services.
Dave Johnson in Links
06:30PM May 25, 2007
Comments [0]
Tags:
app
atom
rest
webservices
German Viscuso: Generally spoken GData provides a general interface to make information available even beyond a browser context by providing a single API that could be used to query, update, and index structured data anywhere on the web. Could GData become a simple and open replacement for all the proprietary communications protocols currently in use by database vendors?Interesting thoughts. I've heard about the Atom Publishing Protocol (APP) based Lucene Web Services API, but I hadn't heard about the Apache Lucene GData server project. Atom protocol is moving fast, especially considering the fact that it's not finished.
Dave Johnson in Feeds
06:18PM May 15, 2007
Comments [0]
Tags:
app
atom
rest
webservices
Leonard Richardson and Sam Ruby's new book RESTful Web Services is now available. It was one of the best sellers in the JavaOne bookstore this year, so congrats to Leonard and Sam. It sold out before I was able to get a copy; Rajiv bought the last one in the store.
Dave Johnson in General
11:47AM May 12, 2007
Comments [1]
Tags:
rest
webservices
Trey Drake: How do you demo a directory server? Build cool apps around it. To that end, we've built an Atom/APP server, a lightweight OpenID server, a blogging and "twitter" like app - all powered by OpenDS. Drop by our booth (Glassfish alley at CommunityONE and .org section of the pavilion during JavaONE). Ludo and I will introduce OpenDS and show off the demos in two talks; today at CommunityONE at 5PM and Wednesday at 1:30 in the CommunityCorner.
Very cool. I'm not going to be the only one talking about Atom protocol at JavaOne. I'll have to stop by the CommunityCorner, that sounds too good to miss.
Dave Johnson in Java
10:43AM May 07, 2007
Comments [0]
Tags:
app
atom
javaone2007
openid
rest
webservices
Dave Johnson in Java
11:32AM Apr 23, 2007
Comments [0]
Tags:
atom
atomprotocol
java
metaweblogapi
rest
rome
romepropono
rss
webservices
Dave Johnson in Java
01:32PM Apr 04, 2007
Comments [1]
Tags:
atom
feeds
java
javaone
propono
rest
rss
Dave Johnson in Links
06:42PM Mar 21, 2007
Comments [0]
Tags:
app
atom
java
rest
webservices
I'm pretty excited that we're putting some resources behind ROME and that both ROME and Blogapps are part of SWDP R1, but I'm even more excited about the next release. In R2 we'll drop the Atom Server Kit and Blogapps BlogClient and we'll replace them with ROME Propono a brand new Atom protocol client and server library that we're getting ready to contribute to the ROME project.
I haven't had a whole lot of time to experiment with the various components in the pack, but I have played with Phobos and I think it's pretty compelling. Phobos is a "lightweight, scripting-friendly, web application environment." It's not just for creating server-side JavaScript applications, but that's the angle the I find interesting. So many developers are creating JavaScript/Ajax applications these days that working in JavaScript on both client and server-sides makes sense -- especially when you can debug into JavaScript code in your IDE as you can with the Netbeans Phobos module. Also note that the jMaki Ajax components work with JSP, PHP and Phobos -- jMaki and Phobos look like a winning combination.
Dave Johnson in Java
05:20PM Mar 12, 2007
Comments [5]
Tags:
ajax
atom
java
rest
rome
rss
swdp
web20