使用Django rest framework搭建 openapi规范api服务端记录:项目的搭建、models serializers和views集优化
# 导入Django和Django REST framework的相关模块
import django
from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse
from rest_framework import permissions, serializers, viewsets
# 定义Django项目和应用
django.setup()
# 定义一个简单的用户序列化类
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ['url', 'username', 'email', 'is_active']
# 定义一个视图集来管理用户信息
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
# 定义一个简单的博客文章模型
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
# 定义一个博客文章序列化类
class PostSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Post
fields = ['url', 'title', 'content', 'author']
# 定义一个视图集来管理博客文章
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
# 定义URL路由
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'posts', PostViewSet)
urlpatterns = router.urls
这段代码演示了如何在Django项目中使用Django REST framework来创建符合OpenAPI规范的API端点。首先,我们定义了一些简单的模型和序列化类,然后创建了相应的视图集,并通过路由器注册了这些视图集。最后,我们定义了URL路由,以便客户端可以访问这些API端点。这个例子简单但有效地展示了如何使用Django REST framework构建RESTful API。
评论已关闭