一个django包,允许您简单地编写api

django-simpleapi的Python项目详细描述


https://api.travis-ci.org/voidfiles/django-simpleapi.svghttps://badge.fury.io/py/django-simpleapi.pnghttps://pypip.in/d/django-simpleapi/badge.png

django simpleapi是麻省理工学院授权的django应用程序,用python编写,面向开发人员。

有多少次您想在django中创建一个简单的json api。 我是说简单。有很多很棒的工具 你只想发回一些json。

这个应用程序让这件事变得非常简单。

fromsimpleapiimportapi_handler@api_handlerdefget_some_yak(request):return{'yak':'yummm'}urlpatterns=patterns('',url(r'^get/some/yak$',get_some_yak),)
curl http://localhost:8000/get/some/yak

{"data": {"yak": "yummm"},
    "meta": {"code": 200}}

功能

  • django的一个简单api
  • 易于执行处理、创建
  • 易于添加到meta

安装

要安装请求,只需:

$ pip install django-simpleapi

文档

最简单的入门方法是使用api_处理程序decorator。

fromsimpleapiimportapi_handler@api_handlerdefget_some_yak(request):return{'yak':'yummm'}

任何返回dict对象的view函数都将使用此接口。

接下来,通常在api中,由于某些原因,您需要失败。验证,缺少参数,请命名。有一种简单的方法可以实现这一点simplehttpexception

fromsimpleapiimportapi_handler,SimpleHttpException@api_handlerdefget_some_yak(request):required_param=request.GET.get('required_param')ifrequired_paramisNone:raiseSimpleHttpException("Missing required_param",'missing-required-param',400)return{'yak':'yummm'}

现在,当您请求此视图并忘记传递必需的参数时,您将看到类似的内容。

curl http://localhost:8000/get/some/yak

{"meta": {"code": 400,
        "error_message": "Missing required_param",
        "error_slug": "missing-required-param"}}

不仅http状态代码将在元响应中,它还将是发送回来的http代码。error slug有助于按进度解决异常。更简单的方法是依靠细绳拍打来找出哪里出了问题。

最后,您可能希望将自己的信息添加到信封的元部分。这将有助于传递信息,如分页信息。

fromsimpleapiimportapi_handler@api_handlerdefget_some_yak(request):request.META['_simple_api_meta']['yak_count']=1return{'yak':'yummm'}

现在的反应是这样的。

curl http://localhost:8000/get/some/yak

{"data": {"yak": "yummm"},
    "meta": {"code": 200,
        "yak_counter": 1}}

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

推荐PyPI第三方库


热门话题
java如何使用Ibatis在插入时返回ID(使用返回关键字)   java(org.hibernate.TransactionException)org。冬眠TransactionException:事务未成功启动   java小程序jwindow始终位于JNLP顶部   在Java中重新解析JSON对象?   java单击后将ListView数据移动到新屏幕   Mule ESB中的java WSA寻址特性   Java,对象编程:获取返回0值的方法   hibernate的Java通用问题,如何处理T get(K id)   java在使用超级CSV读取CSV时忽略引用   ssh使用Java远程运行命令   java如何向具体用户发送websocket消息?   在JAVA中,我可以在不指定的情况下使用条件运算符吗?