我正在尝试为 Django REST 框架中的 REST API 定义 AutoSchema(将在 django Rest Framework swagger 中显示)。这个类扩展了 APIView。
该类具有“get”和“post”方法。喜欢:
class Profile(APIView):
permission_classes = (permissions.AllowAny,)
schema = AutoSchema(
manual_fields=[
coreapi.Field("username",
required=True,
location='query',
description='Username of the user'),
]
)
def get(self, request):
return
schema = AutoSchema(
manual_fields=[
coreapi.Field("username",
required=True,
location='form',
description='Username of the user '),
coreapi.Field("bio",
required=True,
location='form',
description='Bio of the user'),
]
)
def post(self, request):
return
Run Code Online (Sandbox Code Playgroud)
问题是我想要不同的 get 和 post 请求模式。如何使用 AutoSchema 实现这一目标?
我正在使用 djangorest 框架 djangorestswagger 创建简单的 swagger 文档。
Python: 3.6
Django: 3.0.3
django-rest-swagger: 2.2.0
djangorestframework: 3.11.0
Run Code Online (Sandbox Code Playgroud)
这是Models.py
class Image(models.Model):
file = models.ImageField(upload_to='photos', null=True, blank=True)
is_active = models.BooleanField(default=False, null=True, blank=True)
created_at = models.DateTimeField(default=timezone.now)
class Meta:
db_table = 'image'
def __str__(self):
return self.file.name
Run Code Online (Sandbox Code Playgroud)
我创建了serializers.py
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = Image
fields = ('id', 'file', 'created_at')
Run Code Online (Sandbox Code Playgroud)
这里还有image_view.py
from rest_framework import generics
from rest_framework.parsers import FormParser, MultiPartParser, FileUploadParser
from api.serializers import ImageSerializer
from api.models import Image
class ImageView(generics.CreateAPIView):
serializer_class = ImageSerializer …Run Code Online (Sandbox Code Playgroud) 我找不到将BASE URL添加到的方法django rest swagger.我尝试添加
SWAGGER_SETTINGS = {
"base_path": 'localhost:62090/',
}
Run Code Online (Sandbox Code Playgroud)
到settings.py.但它不起作用.
我正在使用Django-rest-swaggerPackage 来记录我的 API,但我只想显示一些 URL 来记录我的项目中有几个应用程序 - 有些答案是 USE Exclude 但最新版本它不起作用 - 我正在使用djangorestframework==3.5.1和Django-rest-swagger==2.1.0和Django-rest-framework用于 API。
我什至尝试过渲染模式和get_swagger_view(title='API Documentation', patterns=urlpatterns1).
但它不起作用。
帮我找到解决办法。
如何配置django-rest-swagger获得HTTPS请求?
upd:存在SSL证书,并且所有应用程序都在使用它,但是大摇大摆地发出了HTTP请求。
python django django-rest-framework swagger-2.0 django-rest-swagger
我正在尝试将https://github.com/axnsan12/drf-yasg这个库添加到我们的 django 应用程序并收到以下错误。
permission_classes=(permissions.AllowAny,),
File "/env/lib/python3.7/site-packages/drf_yasg/views.py", line 67, in get_schema_view
_generator_class = generator_class or swagger_settings.DEFAULT_GENERATOR_CLASS
File "env/lib/python3.7/site-packages/drf_yasg/app_settings.py", line 122, in __getattr__
val = perform_import(val, attr)
File "env/lib/python3.7/site-packages/rest_framework/settings.py", line 166, in perform_import
return import_from_string(val, setting_name)
File "env/lib/python3.7/site-packages/rest_framework/settings.py", line 180, in import_from_string
raise ImportError(msg)
ImportError: Could not import 'drf_yasg.generators.OpenAPISchemaGenerator' for API setting 'DEFAULT_GENERATOR_CLASS'. ImportError: cannot import name 'URLPattern' from 'rest_framework.compat' (env/lib/python3.7/site-packages/rest_framework/compat.py).
Run Code Online (Sandbox Code Playgroud)
经过一番研究,我发现有些人建议安装这个包来解决这个问题
pip3 install packaging
Run Code Online (Sandbox Code Playgroud)
但这没有任何区别。任何其他好的 api 文档库可用于 django rest api?