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 |