跳转到主要内容

Django用户RESTful API,使用Tastypie。

项目描述

https://travis-ci.org/mohabusama/django-users-api.svg?branch=master

Django用户RESTful API,使用Tastypie。此Django应用程序为Django用户、Django组和Django权限提供RESTful接口。

安装

pip install django-users-api

或从克隆的仓库中安装

python setup.py install

开发

运行测试

$ virtualenv venv
$ . venv/bin/activate
$ pip install -r requirements.txt
$ python setup.py test

集成

您可以通过多种方式在您的Django应用程序中集成django-users-api应用程序。

URLConfig(默认)

django-users-api默认URL添加到项目的URL。在以下示例中,我们将包含带有前缀“auth/”的我们的users_api.urls

在项目urls.py中

from django.conf.urls import patterns, include, url

urlpatterns = patterns(
    '',
    # ...,
    url(r'^auth/', include('users_api.urls')),
    # ...
)

可以通过以下方式访问users_api URL

/auth/users/
/auth/groups/
/auth/permissions/
...

所选资源

在某些情况下,您可能需要从项目URL中排除某些资源。在这种情况下,您必须自己添加所需的资源。

假设您只需要UsersResource可用(即排除GroupsResourcePermissionsResource

在项目urls.py中

from django.conf.urls import patterns, include, url

from users_api.common import UsersApi
from users_api.api.users import UsersResource

django_users_api = UsersApi()
django_users_api.register(UsersResource())

urlpatterns = patterns(
    '',
    # ...
    url(r'', include(django_users_api.urls)),
    # ...
)

UsersResource URL将可通过以下方式访问

/users/

资源

UsersResource

django.contrib.auth.models.User提供的Tastypie ModelResource。

GET

  • 列出所有用户:/users/

  • 列出用户1:/users/1/

用户JSON响应示例

{
    "dateJoined": "2014-12-24T13:04:36",
    "email": "admin@admin.com",
    "firstName": "",
    "isActive": true,
    "isStaff": true,
    "isSuperuser": true,
    "lastLogin": "2015-01-03T14:19:41.060600",
    "lastName": "",
    "resourceUri": "/users/1/",
    "username": "admin"
}

POST

  • 创建新用户:/users/

重要:创建用户需要提交数据中的password字段。

用户JSON请求负载示例

{
    "email": "new-user@admin.com",
    "firstName": "New",
    "lastName": "User",
    "username": "new_user"
    "password": "us3rP@sswd"
}

PUT

  • 更新现有用户: /users/1/

提交密码字段将更改用户密码。

删除

  • 删除现有用户: /users/2/

GroupsResource

一个用于 django.contrib.auth.models.Group 的 tastypie ModelResource。

GET

  • 列出所有组: /groups/

  • 列出组 1: /groups/1/

  • 列出用户 1 的组: /users/1/groups/

组 JSON 响应示例

{
    "name": "Group name",
    "resourceUri": "/groups/1/"
}

POST

  • 创建新组: /groups/

组 JSON 请求负载示例

{
    "name": "HR Group"
}

PUT

  • 更新现有组: /groups/1/

  • 将组 1 分配给用户 1: /users/1/groups/1/

删除

  • 删除现有组: /groups/2/

  • 从用户 1 中移除组 1: /users/1/groups/1/

PermissionsResource

一个用于 django.contrib.auth.models.Permission 的 tastypie ModelResource。

GET

  • 列出所有权限: /permissions/

  • 列出权限 1: /permissions/1/

  • 列出用户 1 的权限: /users/1/permissions/

  • 列出组 1 的权限: /groups/1/permissions/

权限 JSON 响应示例

{
    "codename": "add_logentry",
    "contentTypeUri": "/contenttypes/1/",
    "name": "Can add log entry",
    "resourceUri": "/permissions/1/"
}

POST

  • 创建新权限: /permissions/

重要:有效的权限应通过 contentTypeUri 字段引用有效的 ContentType(见 ContentTypesResource)。

权限 JSON 请求负载示例(假设我们有一个 Blog 模型)

{
    "codename": "add_blog",
    "contentTypeUri": "/contenttypes/20/",
    "name": "Can add new blog",
}

PUT

  • 更新现有权限: /permissions/1/

  • 将权限 1 分配给用户 1: /users/1/permissions/1/

  • 将权限 1 分配给组 1: /groups/1/permissions/1/

删除

  • 删除现有权限: /permissions/2/

  • 从用户 1 中移除权限 1: /users/1/permissions/1/

  • 从组 1 中移除权限 1: /groups/1/permissions/1/

ContentTypesResource

一个只读的 tastypie ModelResource,用于 django.contrib.auth.models.ContentType

GET

  • 列出所有 contenttypes: /contenttypes/

  • 列出 contenttype 1: /contenttypes/1/

ContentType JSON 响应示例

{
    "appLabel": "admin",
    "model": "logentry",
    "name": "log entry",
    "resourceUri": "/contenttypes/1/"
}

身份验证

默认情况下,所有资源都使用 Tastypie SessionAuthentication

授权

默认情况下,所有资源都使用 Tastypie DjangoAuthorization

重要:DjangoAuthorization 给所有用户 读取访问 权限,这可能不是期望的行为。

扩展

Django-users-api 资源基于 Tastypie ModelResource 类,这使您能够扩展和覆盖任何 users_api 资源。

许可证

MIT 许可证.

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源分布

django-users-api-0.1.tar.gz (11.9 kB 查看散列)

上传时间

由以下机构支持