First you need to setup Railo with your webservice cfc:
http://www.getrailo.org/index.cfm/whats-up/railo-40-released/features/rest-services/
Second you need to create and configure your cfc:
<cfcomponent rest="true" restpath="/hello">
The restpath provides the step in your URL from which your service is accessed. A normal REST webservice is pretty straightforward. Ensure your method is set to access="remote" and add in httpMethod and a restPath param to the cffunction.
<cffunction name="getmuppets" access="remote" httpmethod="GET" restpath="/getmuppets">
The restpath identifies the url structure you'll use to access the webservice.
The httpmethod tells the webservice if it should respond to GET/POST/PUT etc methods. These methods are defined and talked about more in REST definitions: http://en.wikipedia.org/wiki/Representational_state_transfer#Vocabulary_re-use_vs._its_arbitrary_extension:_HTTP_and_SOAP
Returning data is fairly standard, but if you want to return JSON then you might want to look at my previous blog post.
I've found that unlike much of CFML REST is case sensitive, so its a good idea to make everything lowercase.
This should be enough to get you going, but pretty soon you'll need to add arguments. So lets have a quick look at REST arguments. Lets assume for now we're just interested in a GET request.
You add your cfargument as your normally would, but you also need a param called restArgSource.
<cfargument name="intage" type="numeric" restArgSource="Path">
Your new method would look like this:
<cffunction name="getmuppets" access="remote" produces="application/json" httpmethod="GET" restpath="/getmuppets/intage/{intage}/strsex/{strsex}/">
<cfargument name="intage" type="numeric" restArgSource="Path">
<cfargument name="strsex" type="string" restArgSource="Path">
.....
</cffunction>
Pay particular attention to how the restpath needs to be updated to match the new arguments. We're using restArgSource set to path, which means your url needs to provide those arguments. Here's an example URL:
http://localhost/rest/demo/hello/getmuppets/intage/30/strsex/male
Each step in the URL is a piece of the puzzle.
There are a few types that restArgSource accepts:
- Path
- Query
- Matrix
- Cookie / Header
- Form
http://www.adobe.com/devnet/coldfusion/articles/restful-web-services.html
That's it, you should be ready to write your own. Best of luck!