--- title: "RESTful API设计" type: concept tags: [api, rest, django-rest-framework] sources: [tiktok-pm-python-django-project.md] last_updated: 2026-04-14 --- ## Definition RESTful API是一种基于HTTP协议的API设计风格,使用URL表示资源,使用HTTP方法表示操作。 ## Implementation in TikTok PM ### ViewSet 使用Django REST Framework的ModelViewSet自动生成CRUD路由: ```python class ProductViewSet(viewsets.ModelViewSet): queryset = Product.objects.all() serializer_class = ProductSerializer ``` ### Router 使用DefaultRouter自动生成路由: ```python router = DefaultRouter() router.register(r'products', views.ProductViewSet) ``` ### Serializers 序列化器将Django模型转换为JSON: ```python class ProductSerializer(serializers.ModelSerializer): images = ProductImageSerializer(many=True, read_only=True) class Meta: model = Product exclude = ['raw_json', 'input'] ``` ### Filtering 启用django-filter进行多条件过滤: ```python filter_backends = [DjangoFilterBackend, filters.SearchFilter] filterset_fields = ['available', 'category', 'seller_id', 'final_price'] ``` ### API Routes - GET /api/products/:查询所有产品 - GET /api/products/?search=关键词:关键词搜索 - GET /api/products/?category=服饰&In_stock=true:多条件过滤 - POST /api/products/:创建产品 ## Connections - [[RESTful API设计]] ← uses ← [[Django]] - [[RESTful API设计]] ← integrated_with ← [[Django Admin定制]] - [[RESTful API设计]] ← consumed_by ← [[n8n]]