Я использую карниз и пирамиды для создания API.
Большинство операций - это операции REST, поэтому они очень адаптированы. Но для некоторых из них я не хочу следовать принципам REST.
Для примера в этом классе с использованием карниза:
Как мы можем выставить действие в: /gianluca/element/ndomid‹/action.
Я знаю, что у меня может быть другой класс с путем: / gianluca / element / {id} / action с функцией get или post. Но я просто хотел бы, чтобы эта функция была понятной.
from cornice.resource import resource
from pyramid.security import Allow
from pyramid.security import Everyone
@resource(collection_path='/gianluca/element', path='/gianluca/element/{id}')
class MyElement(object):
def __init__(self, request, context=None):
self.request = request
def __acl__(self):
return [(Allow, Everyone, 'everything')]
def collection_get(self):
return {'collection': 'all collection'}
def get(self):
return "Element id : " + self.request.matchdict['id']
# TODO
def action(self):
# elementLib.launchElement()
# Just a standart web service not in rest but i would like to have it under :
# /gianluca/element/{id}/action
return True