kule

?REST interface for MongoDB.

  • 所有者: fatiherikli/kule
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

Simple REST Interface for MongoDB.

Kule is a REST interface for MongoDB. You can use kule as a temporary backend for your backend needed apps.

Requirements

  • Bottle
  • Pymongo

Installation

pip install kule

Usage

python -m kule --database foo --collections users,documents

That's all.

Kule

Now you can interact with your API., Method, Path, Action, -------------, ---------------, ------------------------------, GET, /users, Returns all records. You can give limit and offset parameters to paginate records., GET, /users/:id, Returns a single document, POST, /users, Creates a new document, PUT, /users/:id, Replaces an existing document, PATCH, /users/:id, Updates a document, DELETE, /users/:id, Removes an existing document, ### Customization

You can customize your API response for your requirements.
For example, you can provide authentication method.

Example

You can override an existing endpoint.

from kule import Kule

class MyKule(Kule):
    def delete_detail(self, collection, pk):
        return self.not_implemented()

Magical method names ...

You can override specific endpoint with kule's magical methods.

from kule import Kule

class MyKule(Kule):
    def get_users_list(self, collection):
        return ["merhaba", "hello", "hola"]

Building custom bundle

Also there is a way to build customized bundles.

from kule import Kule

class MyKule(Kule):
    def build_users_bundle(self, user):
        first_name, last_name = user.get("full_name").split()
        return {"first_name": first_name, 
                "last_name": last_name}

Starting app

mykule = MyKule(database="foo")
mykule.run()

Using with Backbone.js

You have to override the parse method of collections. Because models listing
on objects key.

Backbone.Collection.prototype.parse = function(data) {
    return data.objects ? data.objects : data;
};

// examples
var Document = Backbone.Model.extend({
    urlRoot: "http://localhost:8000/documents", // Supports CORS
    idAttribute: "_id"
});
var Documents = Backbone.Collection.extend({
    model: Document,
    url: "http://localhost:8000/documents"
});

// lets play
var _document = new Document({"title": "hello"});
_document.save()

_document.on('reset', function () {
    console.log(_document.id);
})

主要指标

概览
名称与所有者fatiherikli/kule
主编程语言Python
编程语言Python (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2013-04-02 21:59:29
推送于2021-04-07 21:27:41
最后一次提交2019-01-02 02:09:25
发布数0
用户参与
星数490
关注者数18
派生数34
提交数66
已启用问题?
问题数5
打开的问题数4
拉请求数4
打开的拉请求数2
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?