diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-02-18 23:43:09 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-02-18 23:43:09 +0000 |
commit | 7a67d0f617db7d2962b6c3b80466e21570b244bf (patch) | |
tree | 56fa640e31f4f7f22d34a246bc1b197706a07e3a /actionwebservice/HACKING | |
parent | fdecb6843ba8c5b0f718225f343017e11fa7f711 (diff) | |
download | rails-7a67d0f617db7d2962b6c3b80466e21570b244bf.tar.gz rails-7a67d0f617db7d2962b6c3b80466e21570b244bf.tar.bz2 rails-7a67d0f617db7d2962b6c3b80466e21570b244bf.zip |
Renamed Action Service to Action Web Service
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@669 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionwebservice/HACKING')
-rw-r--r-- | actionwebservice/HACKING | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/actionwebservice/HACKING b/actionwebservice/HACKING new file mode 100644 index 0000000000..9c0cde6313 --- /dev/null +++ b/actionwebservice/HACKING @@ -0,0 +1,44 @@ +== Coding Style + +Please try to follow Rails conventions and idioms. + + +== Concepts + + * Service + A service has an associated API definition, and + implements the methods defined in the API definition + + * Container + A container contains zero or more services + + * API + An API definition defines a list of methods implemented by + a service + + * Router + A router takes raw wire requests, decodes them, performs the invocation on + the service, and generates raw wire responses from the invocation result. + A router is mixed into a container class. + + * Protocol + A protocol implementation implements the unmarshaling and marshaling of + raw wire requests and responses. Registers with router. + + +== Action Pack Integration + +For Action Pack, the ActionController is both container and router, and also contains +the protocol implementations. + + +== Adding support for a new protocol + + 1. Add an ActionService::Protocol::YourProtocol module and any classes you need to + perform unmarshaling/marshaling of protocol requests. See the SOAP implementation + for an example of a complex mapping, and also see + ActionService::Protocol::AbstractProtocol for the methods you need to implement. + + 2. Add unit tests for your new protocol. Be sure to test using a Action Pack test request + duplicating how the real requests will arrive and verify that mapping to and from Ruby + types works correctly. |