Posts tagged restful
While researching for the Oracle SOA Suite 11g Handbook, I wanted to take a quick look at REST(ful) WebServices and see how those can be integrated into the SCA based SOA Composite Applications that we create with the Oracle SOA Suite. Currently, it does not have the HTTP binding that the 10.1.3 release of the SOA Suite used to have. So what are the alternatives? But first, how does one call a simple HTTP only (no SOAP/WS*) service from a piece of Java code? With as little programming and as much framework lifting as possible.
One of the frameworks available for RESTful operations is Jersey – a framework that should be more REST aware than plain HTTP communication oriented libraries like Apache HTTP Client, as well as offer some support for typical formats used in RESTful interactions, such as JSON, XML, RSS, CSV. So let’s create the simples Java application consuming a RESTful service – the Google Translation service – using the Jersey library.
RESTful service based on ADF Business Components, publishing enterprise database contents the REST way
After three introductory and exploratory articles on RestLet, RESTful Services and the creation of the latter using the former in JDeveloper 11g as well as hooking it up with ADF, it is now time to create a more serious RESTful service. A service that exposes resources from an enterprise business service. One backed by a enterprise database. One that RESTfully provides access to the Human Resource data. In other words: we will publish RESTful services for DEPT and EMP in the SCOTT schema.
It really is simple. The steps are:
- create default ADF BC business objects for the DEPT and EMP tables; this implicitly publishes a Data Control that exposes the data collections
- create a new JSF page; drag the EMP table to this page and drop it as master-detail (table-table); this implicitly creates a PageDefinition that fuels the BindingContainer we need for our services
- create and configure a servlet filter that will take care of initializing the BindingContainer on every request
- create Resource classes for Depts, Dept, Emps and Emp; these classes get the appropriate data binding from the BindingContainer, set the current row for Dept (all resources except Depts) and Emp (only for the Emp More >
Publishing resources exposed by ADF Data Control in RESTful services using RestLet and JDeveloper 11g
The previous two articles on RESTful services using RestLet and developing in JDeveloper 11g – First Steps with RestLet 1.1RC2 in JDeveloper 11g – restful services 101 and Extending the RestLet application with support for POST/PUT to create and update Resources – used a static data set as source for the Resources. For real world services that will not be your typical scenario. Usually a business service hiding a persistence layer sitting on top of a database or wrapping a web service (RESTful or otherwise) is the more logical publisher of resources.
In this article, we will see how we can leverage ADF Model – Data Control & Data Bindings – to hook up such a business service. ADF Model publishes a Data Control for each Business Service it exposes. Through the Data Control applications can get access to data collections and operations acting on that data. For the application consuming the Data Control there should be no difference whether the underlying business service is an ADF BC application module connecting to a relational database, an EJB doing something similar, a web service published in the SOA of the organization or a RESTful service out there on the internet. That is at More >
In a previous post – First Steps with RestLet 1.1RC2 in JDeveloper 11g – restful services 101 – I introduced RestLet and how to use it for creating very simple RestFul services in JDeveloper 11g. This contribution takes things a little further: the things and thing service discussed in the prior article only support read only operations: GET requests. In this article, we will add the ability to create and update things.
Since creation is done based on simple HTTP request of type POST, all we need for a Thing Create Client is a static HTML page with form that posts to the /things url of our RestFul service. The post request should contain the properties of the new thing we want to have created. It is up to the RestFul service to handle the post request. More specifically: the ThingsResource class will take on the Post request sent to the /things service and try to create a new thing based on it. (more…)
WebServices are hot. Some more so than others. SOAP based WebServices are frequently seen as not very lean and agile. Robust – perhaps. Widely supported – no doubt about it. Key element of almost any SOA infrastructure – sure. Easy, lightweight to deploy or to program a client against – no, not really. Inituitive? Bookmarkable? Addressable? – none of those. Restful web-services are the easy to use, lightweight, navigation oriented complement to the more heavy weight WS* SOAP based web services. REST is the natural extension of HTTP – leveraging a lot of its potential in a very direct way. REST services focus on Resources – that are searched & retrieved, created, updated and deleted. Resources can refer to each other – through hyperlinks that equal new REST service calls. The representation of Resources – the format of the response received or sent by a client has to be agreed upon; it usually is XHTML, XML or plain text.
Under JSR-311, a formal specification for REST is being developed, with project Jersey – nearing its completion – the reference implementation. An even more mature Java project for RESTful services is RestLet – a fairly easy to use library that allows for easy More >