获取自动生成的序列化程序和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