當前位置: 首頁>>代碼示例>>Python>>正文


Python falcon.API屬性代碼示例

本文整理匯總了Python中falcon.API屬性的典型用法代碼示例。如果您正苦於以下問題:Python falcon.API屬性的具體用法?Python falcon.API怎麽用?Python falcon.API使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在falcon的用法示例。


在下文中一共展示了falcon.API屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: on_get

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def on_get(self, req, resp, ical_key):
        """Access the oncall calendar identified by the key.

        The response is in ical format and this url is intended to be
        supplied to any calendar application that can subscribe to
        calendars from the internet.
        """
        try:
            path = self.base_url + '/api/v0/ical/' + ical_key
            if req.query_string:
                path += '?%s' % req.query_string
            result = self.oncall_client.get(path)
        except MaxRetryError as ex:
            logger.error(ex)
        else:
            if result.status_code == 200:
                resp.status = falcon.HTTP_200
                resp.content_type = result.headers['Content-Type']
                resp.body = result.content
                return
            elif 400 <= result.status_code <= 499:
                resp.status = falcon.HTTP_404
                return

        raise falcon.HTTPInternalServerError('Internal Server Error', 'Invalid response from API') 
開發者ID:linkedin,項目名稱:iris-relay,代碼行數:27,代碼來源:app.py

示例2: on_post

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def on_post(self, req, resp):
        """
        Accept twilio SMS webhook and forward to iris API
        """
        try:
            path = self.config['iris']['hook']['twilio_messages']
            re = self.iclient.post(path, req.context['body'].decode('utf-8'), raw=True)
        except MaxRetryError as e:
            logger.error(e.reason)
            self.return_twixml_message('Connection error to web hook.', resp)
            return

        if re.status != 200:
            self.return_twixml_message(
                'Got status code: %d, content: %s' % (re.status,
                                                      re.data[0:100]), resp)
            return
        else:
            body = process_api_response(re.data)
            self.return_twixml_message(body, resp)
            return 
開發者ID:linkedin,項目名稱:iris-relay,代碼行數:23,代碼來源:app.py

示例3: test_errors

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def test_errors(sentry_init, capture_exceptions, capture_events):
    sentry_init(integrations=[FalconIntegration()], debug=True)

    class ZeroDivisionErrorResource:
        def on_get(self, req, resp):
            1 / 0

    app = falcon.API()
    app.add_route("/", ZeroDivisionErrorResource())

    exceptions = capture_exceptions()
    events = capture_events()

    client = falcon.testing.TestClient(app)

    try:
        client.simulate_get("/")
    except ZeroDivisionError:
        pass

    (exc,) = exceptions
    assert isinstance(exc, ZeroDivisionError)

    (event,) = events
    assert event["exception"]["values"][0]["mechanism"]["type"] == "falcon" 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:27,代碼來源:test_falcon.py

示例4: test_falcon_large_json_request

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def test_falcon_large_json_request(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])

    data = {"foo": {"bar": "a" * 2000}}

    class Resource:
        def on_post(self, req, resp):
            assert req.media == data
            sentry_sdk.capture_message("hi")
            resp.media = "ok"

    app = falcon.API()
    app.add_route("/", Resource())

    events = capture_events()

    client = falcon.testing.TestClient(app)
    response = client.simulate_post("/", json=data)
    assert response.status == falcon.HTTP_200

    (event,) = events
    assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
        "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
    }
    assert len(event["request"]["data"]["foo"]["bar"]) == 512 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:27,代碼來源:test_falcon.py

示例5: test_falcon_empty_json_request

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def test_falcon_empty_json_request(sentry_init, capture_events, data):
    sentry_init(integrations=[FalconIntegration()])

    class Resource:
        def on_post(self, req, resp):
            assert req.media == data
            sentry_sdk.capture_message("hi")
            resp.media = "ok"

    app = falcon.API()
    app.add_route("/", Resource())

    events = capture_events()

    client = falcon.testing.TestClient(app)
    response = client.simulate_post("/", json=data)
    assert response.status == falcon.HTTP_200

    (event,) = events
    assert event["request"]["data"] == data 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:22,代碼來源:test_falcon.py

示例6: test_falcon_raw_data_request

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def test_falcon_raw_data_request(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])

    class Resource:
        def on_post(self, req, resp):
            sentry_sdk.capture_message("hi")
            resp.media = "ok"

    app = falcon.API()
    app.add_route("/", Resource())

    events = capture_events()

    client = falcon.testing.TestClient(app)
    response = client.simulate_post("/", body="hi")
    assert response.status == falcon.HTTP_200

    (event,) = events
    assert event["request"]["headers"]["Content-Length"] == "2"
    assert event["request"]["data"] == "" 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:22,代碼來源:test_falcon.py

示例7: test_500

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def test_500(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])

    app = falcon.API()

    class Resource:
        def on_get(self, req, resp):
            1 / 0

    app.add_route("/", Resource())

    def http500_handler(ex, req, resp, params):
        sentry_sdk.capture_exception(ex)
        resp.media = {"message": "Sentry error: %s" % sentry_sdk.last_event_id()}

    app.add_error_handler(Exception, http500_handler)

    events = capture_events()

    client = falcon.testing.TestClient(app)
    response = client.simulate_get("/")

    (event,) = events
    assert response.json == {"message": "Sentry error: %s" % event["event_id"]} 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:26,代碼來源:test_falcon.py

示例8: test_bad_request_not_captured

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def test_bad_request_not_captured(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])
    events = capture_events()

    app = falcon.API()

    class Resource:
        def on_get(self, req, resp):
            raise falcon.HTTPBadRequest()

    app.add_route("/", Resource())

    client = falcon.testing.TestClient(app)

    client.simulate_get("/")

    assert not events 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:19,代碼來源:test_falcon.py

示例9: build_app_v0

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def build_app_v0():
    """Instantiate the root freezer-api app

    Old versions of falcon (< 0.2.0) don't have a named 'middleware' argument.
    This was introduced in version 0.2.0b1, so before that we need to instead
    provide "before" hooks (request processing) and "after" hooks (response
    processing).

    :return: falcon WSGI app
    """

    # injecting FreezerContext & hooks
    before_hooks = utils.before_hooks() + [
        middleware.RequireJSON().as_before_hook()]
    after_hooks = [middleware.JSONTranslator().as_after_hook()]
    # The signature of falcon.API() differs between versions, suppress pylint:
    # pylint: disable=unexpected-keyword-arg
    app = falcon.API(before=before_hooks, after=after_hooks)

    app = configure_app(app)
    return app 
開發者ID:openstack,項目名稱:freezer-api,代碼行數:23,代碼來源:api.py

示例10: build_app_v1

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def build_app_v1():
    """Building routes and forming the root freezer-api app

    This uses the 'middleware' named argument to specify middleware for falcon
    instead of the 'before' and 'after' hooks that were removed after 0.3.0
    (both approaches were available for versions 0.2.0 - 0.3.0)

    :return: falcon WSGI app
    """
    # injecting FreezerContext & hooks
    middleware_list = [utils.FuncMiddleware(hook) for hook in
                       utils.before_hooks()]
    middleware_list.append(middleware.RequireJSON())
    middleware_list.append(middleware.JSONTranslator())

    # The signature of falcon.API() differs between versions, suppress pylint:
    # pylint: disable=unexpected-keyword-arg
    app = falcon.API(middleware=middleware_list)
    # Set options to keep behavior compatible to pre-2.0.0 falcon
    app.req_options.auto_parse_qs_csv = True
    app.req_options.keep_blank_qs_values = False
    app.req_options.strip_url_path_trailing_slash = True

    app = configure_app(app)
    return app 
開發者ID:openstack,項目名稱:freezer-api,代碼行數:27,代碼來源:api.py

示例11: create_rest_api

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def create_rest_api(models):
    app = falcon.API()
    get_model_status = GetModelStatus(models)
    get_model_meta = GetModelMetadata(models)
    predict = Predict(models)

    app.add_route('/v1/models/{model_name}', get_model_status)
    app.add_route('/v1/models/{model_name}/'
                  'versions/{requested_version}',
                  get_model_status)

    app.add_route('/v1/models/{model_name}/metadata', get_model_meta)
    app.add_route('/v1/models/{model_name}/'
                  'versions/{requested_version}/metadata',
                  get_model_meta)

    app.add_route('/v1/models/{model_name}:predict', predict)
    app.add_route('/v1/models/{model_name}/versions/'
                  '{requested_version}:predict',
                  predict)
    return app 
開發者ID:openvinotoolkit,項目名稱:model_server,代碼行數:23,代碼來源:rest_service.py

示例12: __init__

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def __init__(self, app, app_type=None, config_path=None, config_url=None,
                 url_prefix='/api/doc', title='API doc', editor=False):

        self._app = app
        self._title = title
        self._url_prefix = url_prefix.rstrip('/')
        self._config_url = config_url
        self._config_path = config_path
        self._editor = editor

        assert self._config_url or self._config_path, 'config_url or config_path is required!'

        self._env = Environment(
            loader=FileSystemLoader(str(CURRENT_DIR.joinpath('templates'))),
            autoescape=select_autoescape(['html'])
        )

        if app_type and hasattr(self, '_{}_handler'.format(app_type)):
            getattr(self, '_{}_handler'.format(app_type))()
        else:
            self._auto_match_handler() 
開發者ID:PWZER,項目名稱:swagger-ui-py,代碼行數:23,代碼來源:core.py

示例13: __init__

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def __init__(self, falcon_api=None,
                 static_path='static', static_dir='static', log_config=None):
        if log_config is None:
            self.log = JLog().setup().bind()
        else:
            self.log = JLog().setup(config=log_config).bind()
        self.log.info(cc('falsy init', fore=77, styles=['italic', 'underlined', 'reverse']))

        self.api = self.falcon_api = falcon_api or falcon.API()
        self.static_path = static_path.strip('/')
        self.static_dir = static_dir if os.path.isdir(static_dir) else '.'

        self.api = CommonStaticMiddleware(self.falcon_api, static_dir=self.static_dir,
                                          url_prefix=self.static_path)
        self.log.info('common static middleware loaded\n\t{}'.format(
            'url_prefix(static_path):' + reverse() + self.static_path + rreverse() +
            ', static_dir:' + reverse() + self.static_dir + rreverse())) 
開發者ID:pingf,項目名稱:falsy,代碼行數:19,代碼來源:falsy.py

示例14: on_post

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def on_post(self, req, resp):
        data = req.bounded_stream.read()
        try:
            token = json.loads(data)["token"]
            token = "$pbkdf2-sha256$29000$" + token
        except:
            print("key token is missing")
            resp.body = "token 'key' is missing"
            return
        with open('token.txt', 'r') as f:
            token_old = f.read()
        if token == token_old:
            resp.body = json.dumps("Hello John!")
            return
        else:
            resp.body = json.dumps("Token does not exist")
            return


# falcon.API instance , callable from gunicorn 
開發者ID:PacktPublishing,項目名稱:Practical-Network-Automation-Second-Edition,代碼行數:22,代碼來源:main.py

示例15: test_both_schemas_validation_failure

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import API [as 別名]
def test_both_schemas_validation_failure():
    with pytest.raises(HTTPError) as excinfo:
        Resource().both_validated(GoodData(), BadData())

    assert excinfo.value.title == falcon.HTTP_INTERNAL_SERVER_ERROR
    assert excinfo.value.description == "Response data failed validation"

    with pytest.raises(HTTPError) as excinfo:
        Resource().both_validated(BadData(), GoodData())

    msg = "Request data failed validation: data must contain ['message'] properties"
    assert excinfo.value.title == falcon.HTTP_BAD_REQUEST
    assert excinfo.value.description == msg

    client = testing.TestClient(falcon.API())
    client.app.add_route("/test", Resource())
    result = client.simulate_put("/test", json=BadData.media)
    assert result.status_code == 400 
開發者ID:alexferl,項目名稱:falcon-boilerplate,代碼行數:20,代碼來源:test_validators.py


注:本文中的falcon.API屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。