Django用户RESTful API,使用Tastypie。
项目描述
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
可用(即排除GroupsResource
和PermissionsResource
)
在项目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。
扩展
Django-users-api 资源基于 Tastypie ModelResource 类,这使您能够扩展和覆盖任何 users_api 资源。
许可证
项目详情
django-users-api-0.1.tar.gz 的散列
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3920815cdb64f015dd3a5b2e5fed98e078341fac0e326344f9cc92b0007674eb |
|
MD5 | 9fe7daefef4e3fd6a2f10b6ca81d0c65 |
|
BLAKE2b-256 | 094e157a327da914340069168b7f9e45c0f0c83e72833de7e50bb29a9b8d6e12 |