Hello everybody,

I'm currently thinking about starting a plugin project, that will give
symfony applications a REST API.
So I've written a small document, which shows the design goals,
describes where symfony has to be extended, which points have to be
discussed and some references related to the topic.

I hope there will be a lot of feedback.

Regards,
Christian

Here is the document:

#RFC-sfRESTServicePlugin-0.1

This new plugin should easily allow to give existing applications a
RESTful api and consume RESTful apis, especially RoR ActiveResource.

## design goals

*   apply all REST principles
  *   use HTTP methods
  *   use HTTP status codes
  *   use HTTP authentication
  *   use URLs as references between objects
  *   use content negotiation
  *   use caching
*   provide client and server api
*   integrate into model layer
*   provide cli tasks
*   support multiple data formats (xml, json, ...)
*   be RoR ActiveResource compatible
*   ...

## symfony extension points

In the following places the plugin has to extend symfony:

*   controller
*   request/response
*   routing
*   view
*   model
*   ...

## points to discuss

*   is there a need in the community for such a plugin
*   is such a plugin even realistic or is custom api implementation
for each application desirable
*   split into two plugins one for server and another one for client
*   how to configure which methods are exported
  *   YAML file
  *   additional doc tags, parsed through cli task

## references

*   [Architectural Styles and the Design of Network-based Software
Architectures](http://www.ics.uci.edu/~fielding/pubs/dissertation/
top.htm)
*   [english Wikipedia article](http://en.wikipedia.org/wiki/REST)
*   [introduction](http://www.infoq.com/articles/rest-introduction)
*   [anti-patterns](http://www.infoq.com/articles/rest-anti-patterns)
*   [add request method requirements through routing](http://
redotheweb.com/2008/08/08/add-request-method-requirement-to-routing-in-
symfony-11/)
*   has anyone a good RoR ActiveResource reference guide?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/symfony-devs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to