Skip to content

nekoite/nekoite-be-core

Repository files navigation

Nekoite Backend Core

pypi build

Usage

Requires python 3.7 or newer.

pip install nekoite-be-core

There are some examples to look at.

Basically, choose an adapter (or build on your own), create some views and routes, and give it to the function register_routes.

routes = {"/a": AView, ...}
adapter = SomeAdapter(*args)
register_routes(adapter, routes)

Modules

View

Extend the class ViewBase. Override the function handle_req. You can specify the request_schema and response_schema, and if they are not specified or None, then the request or response format will not be checked. method can be a string or list of strings indicating the HTTP methods accepted by this view.

class TestView(ViewBase):
    request_schema = {"id": fields.Integer(required=True)}
    response_schema = {"id": fields.Integer(), "timestamp": fields.Integer()}
    methods = ["GET", "POST"]

    def handle_req(self, req: t.Dict[str, t.Any]) -> t.Any:
        return {
            "id": req["id"],
            "timestamp": int(time()),
        }

Fields

You can import fields from this package. It includes some field type defined in marshmallow, and the Nested type is rewritten to accept dict as parameter.

The detailed usage of the types in fields can be found on the homepage of marshmallow.

from nekoite_be_core import fields

# ...
request_schema = {
    "id": fields.Integer(required=True),
    ...
}