Можно ли добавить дополнительный маршрут в Python Pyramids Cornice (Отдых вдохновлен) - PullRequest
0 голосов
/ 30 октября 2018

Я использую карниз и пирамиды для создания 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

1 Ответ

0 голосов
/ 05 февраля 2019

Для таких целей вы должны использовать cornice.Service API. cornice.resource для чистого отдыха.

...