用于Django的简单、可读、声明性api

django-declarative-apis的Python项目详细描述


概述

django声明性api是在django之上构建的一个框架,旨在实现restfulapi的团队。它提供了一个简单的接口来声明性地定义端点。使用django声明性api的一些好处:

  • 以声明方式定义终结点
  • 使用一致的接口定义模型绑定和未绑定的资源终结点
  • OAuth 1.0a现成的身份验证
  • 定义资源和端点绑定任务,促进模块化 *定义同步和异步任务(用Celery实现的异步任务)
  • 请求体处理和业务逻辑之间的关注点分离

快速入门

本指南旨在演示让django声明性api项目启动并运行的最低限度。example目录包含更多使用端点来建模关系、身份验证和响应属性过滤的示例。在

创建django应用程序

./manage startapp myapp

将应用添加到已安装的应用程序

^{pr2}$

添加所需配置

DECLARATIVE_ENDPOINT_RESOURCE_ADAPTER = 'django_declarative_apis.adapters.EndpointResource'
DECLARATIVE_ENDPOINT_AUTHENTICATION_HANDLERS = 'django_declarative_apis.authentication.oauthlib.oauth1.TwoLeggedOauth1'

我的应用程序/网址.py在

from django_declarative_apis import adapters
import myapp.resources

class NoAuth:
   @staticmethod
   def is_authenticated(request):
      return True


urlpatterns = [
    url(
        r'^ping$',
        adapters.resource_adapter(
            get=myapp.resources.PingDefinition,
            authentication=NoAuth
        )
    ),
]

我的项目/我的项目/网址.py在

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

urlpatterns = [
   url(r'^', include(myapp.urls)),
]

我的应用程序/资源.py在

from django_declarative_apis import machinery


class PingDefinition(machinery.BaseEndpointDefinition):
    def is_authorized(self):
        return True

    @property
    def resource(self):
        return {'ping': 'pong'}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android上已连接音频输入设备的java列表   java是创建类的新对象还是使用静态方法?   Java:Shift/Rotate对象数组   Java Casting ArrayIterator<Object>   在java中返回布尔值时出错   无法确定文本文件读入程序(java)中的各种元素   Java Swing JToolBar   JAVAlang.IllegalStateException执行Ghost4J(Linux 32对64位)   jvm如何增加ubuntu系统的java堆化?   java CORS策略“AccessControlAllowOrigin”(Anguar 8和Servlet)   使用dagger 2的java视图依赖项注入   单元测试中RxJava的java模拟活动生命周期   arraylist中的Java打印字符串   java返回值显示为0.0。为什么会这样?   java是clientserver应用程序所必需的MVC吗?   ByteToMessageDecoder类中的java内存泄漏   java将大量文档写入firestore   GWT项目中的java TomcatMaven插件。两者之间的区别是什么:org。科德豪斯。魔咒和组织。阿帕奇。公猫maven插件   java swing:向JTree项添加自定义图形按钮