On Thu, Dec 22, 2011 at 4:44 PM, Tarek Ziadé <[email protected]> wrote: > Hey > > Gael's idea on using a class to define all methods for a service, gave me > another idea: add a light CRUD on the top of SQLAlchemy, in Cornice >
For me this has nothing to do in cornice. Please keep this stuff backend independent. And if you want to do that then use a form library. Just because your model is not always (maybe never) reflecting what you want expose > I post it here and now because I think it overlaps a little bit Gael's > proposal > > The idea would be to point to Cornice an SQLAlchemy mapping and have it > "published" as a set of RESTful APIs. > > Example (see the __path__ attribute): > > from sqlalchemy.ext.declarative import declarative_base, Column > from sqlalchemy import Integer, String, Text > from cornicedb import DataPublisher > > > _Base = declarative_base() > > > class Application(_Base, DataPublisher): > __tablename__ = 'applications' > __path__ = '/applications' > > id = Column(Integer, primary_key=True) > user = Column(String(256), nullable=False) > collection = Column(String(256), nullable=False) > origin = Column(String(256), nullable=False) > last_modified = Column(Integer, nullable=False) > data = Column(Text) > > > This would generate automatically these REST-ish URIs: > > - GET /applications - get the whole table, with batch options > - POST /applications - adds one or several rows > - DELETE /applications - adds one or several rows > - GET /applications/1 - get the row of id 1 > - PUT /applications/1 - updates the row of id 1 > - DELETE /applications/1 - delete the row of id 1 > - etc.. > > Other features I have in mind: > > - you can override or deactivate any one of these API by adding get() post() > etc, methods to the class > - you can write pre/post hooks, to add authentication etc > - you can define what we already have in cornice (validators, etc) > > One pitfall: have the view and the data controller mixed in one single > class. If we start to have more code atop the data, it could become a mess > > Cheers > Tarek > > -- > Tarek Ziadé | http://ziade.org > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" 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/pylons-discuss?hl=en. -- You received this message because you are subscribed to the Google Groups "pylons-discuss" 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/pylons-discuss?hl=en.
