获取自动生成的序列化程序和API端点

autogenerated-api的Python项目详细描述


自动生成的API

获取自动生成的序列化程序和API终结点

要求

- django
- djangorestframework
Tested with all Django versions from `1.8.x to 2.x.x`	

与最新版本的Django.

一起发布

For Django==1.8.x
	- djangorestframework==3.4.2

安装自动生成的API

为django构建的自动生成的api。

pip install autogenerated_api

应用程序中的可自定义文件

django_app architecture looks like
- app_name
	- __init__.py
	- admin.py
	- models.py
	- serializers.py
	- tests.py
	- views.py

丝光剂.py

from.modelsimportModelNamefromautogenerated_api.serializersimportDeadlySerializerFactoryModelNameDeadlySerializer=DeadlySerializerFactory(modelName)-DeadlySerializerFactory`OptionalParamaters`-nest=["field_1","field_2"]-nested_fields={"field_name_in_releation":["related_model_field_1","related_model_field_2"]}-ifyouwanttogetallfieldsofmodelwhileisinrelation-nested_fields={"field_name_in_reletion":["*"]}-exclude=["field_1","field_2"]:fieldsthatyouwanttoexcludeModelNameDeadlySerializer=DeadlySerializerFactory(modelName,nest,nested_fields,exclude)

视图.py

importapp_name.modelsimportapp_name.serializersfromautogenerated_api.autogenerationimportmake_all_viewsetsmake_all_viewsets(__name__)

在主项目文件夹中创建新文件api_urls.py

主项目文件夹体系结构

-main_proj_name-__init__.py-settings.py-urls.py-wsgi.py-api_urls.py

api_urls.py文件中添加以下代码。

importapp_name.viewsfromdjango.urlsimportpath,re_path,includefromautogenerated_apiimportautogenerated_urlsurlpatterns=autogenerated_urls.urlpatternsurlpatterns+=[]

添加到URL

添加下面的urls.py

importdjangodj_version=django.get_version()fromdjango.contribimportadmintry:fromdjango.urlsimportpath,include,re_pathexceptImportError:fromdjango.conf.urlsimportinclude,urltry:fromdjango.core.urlresolversimportreverseexceptImportError:fromdjango.urlsimportreverseimportreifre.search('^2[\d.]+',str(dj_version)):urlpatterns=[re_path(r'^api/',include(('main_proj_name.api_urls','main_proj_name'),namespace="api")),]else:urlpatterns=[url(r'^admin/',include(admin.site.urls)),url(r'^api/',include('main_proj_name.api_urls',namespace="api")),]

设置中可自定义的字段。

AUTOGENERATE_APPS=["app_name"]

最后,您将得到自动生成的seraalier和端点。

- Autogenerated End Points
	- `/api/model_name_in_lower/` :  list out all the model_instance
	- `/api/model_name_in_lower/<instance_id>` : you will get detail of instance of given id  

为什么使用自动生成的API?

通过autogenerated_api模块,您可以直接创建与每个模型对应的序列化器,还可以访问与关系(m2m or foreignkey relationship)相关的模型的所有字段值。

要获取模型实例的列表,必须编写一个api端点,比如ListAPiView,要获取模型实例的详细信息,必须实现DetailAPIView or RetrieveApiView端点。

现在,您不必创建这些api端点,也不必担心serailizers。这个模块会照顾好的。只是,按照我上面提到的步骤。

即将

- Module with more functionality and more autogenerated end points.

I will really appreciate if you support the project by clicking the star button on Github repository

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

推荐PyPI第三方库


热门话题
Java上的256位输出哈希函数   java使JButton不可见,但尊重其原始空间   Java错误,Java。lang.NoClassDefFoundError:org/myorg/WordCount在Hadoop中   数据拼接连接/合并Oracle与基于Java的技术   java如何演示围绕未正确发布的值的竞争条件?   java如何解决媒体类型=文本/普通异常的MessageBodyReader找不到?   java两个XML输入,一个XSL转换输出   java PahoMqtt定期发布方法   spring social facebook错误消息为(#12)版本v2不推荐使用bio字段。8及以上   java如何在submit按钮中定义wicket ID的范围   用Java为Freebsd捕获视频   java如何将Firestore中的时间戳添加到my变量中   java jersey restful Web服务tomcat版本   java句柄MaxUploadSizeExceedeException:Ajax文件上载   java标签和注释构成一个web地址。用网豆做的复活节彩蛋?   java Spring Boot不会选择Spring。数据源。雄猫。*在以编程方式配置数据源时?   java在排序数组中插入整数