MoviesWebService
In our web service we will create an interface that is very similar to the back-end service interface we created in previous chapters. In part, this is to show that mechanisms for passing messages back and forth are largely interchangeable, and also to show that a RESTful interface does not need to represent a total paradigm shift if you don’t want it to.
In fact, if we wanted to provide a RESTful interface in addition
to our XML-RPC interface in our back-end service, we could do so using
the same ActionWebService::Struct
classes. Example 18-7
shows our Movie class from the
XML-RPC service, now marked up with ROXML. Using the techniques in the
rest of this chapter, we could have provided an identical interface as
our XML-RPC API, using RESTful techniques. In fact, it’s even possible
that the RESTful interface could be generated from the same style of API
definition as the XML-RPC API files. Of course, this is not currently
supported, but it is a possible future direction and would certainly
ease transition to REST, should your organization wish to do so.
Example 18-7. An ActionWebService class annotated with ROXML
module Logical
class Movie < ActionWebService::Struct
include ROXML
xml_attribute :id
xml_text :name
xml_text :rating_id
xml_text :rating_description
xml_text :length_minutes
member :id, :integer
member :name, :string
member :length_minutes, :integer
member :rating_id, :string
member :rating_description, :string
end
endResources Server Implementation
In
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access