RESTful API终极版序列化封装

urls:

from django.conf.urls import url
from app01 import views

urlpatterns = [
    # url(r"comment/$",views.Comment.as_view()),
    url(r"comment/(?P<pk>\d+)",views.CommentDetailView.as_view()),
    url(r"article/$",views.Article.as_view()),
    url(r"school/(?P<id>\d+)",views.SchoolDetail.as_view(),name="school-detail"),
    url(r"school_view/$",views.SchoolView.as_view(),name="school_view-detail"),
    url(r"comment_view/$",views.CommentView.as_view(),name="comment_view-detail"),
    url(r"article/(?P<pk>\d+)",views.ArticleDetail.as_view(),name="article-detail"),

    # url(r‘comment/$‘,views.CommentViewSet.as_view({
    #     "get":"list",
    #     "put":"create",
    # })),
    #
    # url(r‘comment/(?P<pk>\d+)/$‘,views.CommentViewSet.as_view({
    #     "get":"retrieve",
    #     "put":"update",
    #     "delete":"destroy"
    # }))

]

from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r‘comment‘,views.CommentViewSet)
urlpatterns += router.urls

#   相当于 在urlpatterns里添加了:
    # url(r‘comment/$‘,views.CommentViewSet.as_view({
        #     "get":"list",
        #     "put":"create",
        # })),
        #
        # url(r‘comment/(?P<pk>\d+)/$‘,views.CommentViewSet.as_view({
        #     "get":"retrieve",
        #     "put":"update",
        #     "delete":"destroy"
        # }))

views:此处为RESTful API 终极版:

from django.shortcuts import render,HttpResponse
from django.http import JsonResponse
from app01 import models
from rest_framework import serializers
from django import views
from rest_framework.views import APIView
from rest_framework.response import Response
from app01 import serializers as app01_serializers
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin
from rest_framework.generics import GenericAPIView, RetrieveUpdateDestroyAPIView, ListCreateAPIView
from rest_framework.viewsets import ModelViewSet

from django.conf.urls import url
from app01 import views

urlpatterns = [
    # url(r"comment/$",views.Comment.as_view()),
    url(r"comment/(?P<pk>\d+)",views.CommentDetailView.as_view()),
    url(r"article/$",views.Article.as_view()),
    url(r"school/(?P<id>\d+)",views.SchoolDetail.as_view(),name="school-detail"),
    url(r"school_view/$",views.SchoolView.as_view(),name="school_view-detail"),
    url(r"comment_view/$",views.CommentView.as_view(),name="comment_view-detail"),
    url(r"article/(?P<pk>\d+)",views.ArticleDetail.as_view(),name="article-detail"),

    # url(r‘comment/$‘,views.CommentViewSet.as_view({
    #     "get":"list",
    #     "put":"create",
    # })),
    #
    # url(r‘comment/(?P<pk>\d+)/$‘,views.CommentViewSet.as_view({
    #     "get":"retrieve",
    #     "put":"update",
    #     "delete":"destroy"
    # }))

]

from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r‘comment‘,views.CommentViewSet)
urlpatterns += router.urls

#   相当于 在urlpatterns里添加了:
    # url(r‘comment/$‘,views.CommentViewSet.as_view({
        #     "get":"list",
        #     "put":"create",
        # })),
        #
        # url(r‘comment/(?P<pk>\d+)/$‘,views.CommentViewSet.as_view({
        #     "get":"retrieve",
        #     "put":"update",
        #     "delete":"destroy"
        # }))

原文地址:https://www.cnblogs.com/stfei/p/9409865.html

时间: 2024-10-11 17:31:56

RESTful API终极版序列化封装的相关文章

java版spring cloud+spring boot 社交电子商务平台(九)使用Swagger2构建强大的RESTful API文档(1)

由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端. 这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发.Android开发或是Web开发等.为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTf

java版spring cloud+spring boot+redis社交电子商务平台(十)使用Swagger2构建强大的RESTful API文档(2)

添加文档内容在完成了上述配置后,其实已经可以生产文档内容,但是这样的文档主要针对请求本身,而描述主要来源于函数等命名产生,对用户并不友好,我们通常需要自己增加一些说明来丰富文档内容.如下所示,我们通过@ApiOperation注解来给API增加说明.通过@ApiImplicitParams.@ApiImplicitParam注解来给参数增加说明. @RestController @RequestMapping(value="/users") // 通过这里配置使下面的映射都在/user

RESTful API的设计原则

最近一直在做公司的一个API平台的项目,前后大约有半年多了,中间穿插了好多其他的项目一起做的.上周经理要求写文档,我就重新打开项目开始检阅之前的代码,发现好多地方当初设计的并不合理,忽然就想到,一个好的API平台,应该怎么来设计呢?有哪些规范要遵守呢?面对自己的项目,感觉好多地方都要改,但是已经有人在用了,怎么办?全都要改动吗?所以就上网找解决方案,然后就发现一精品贴,现转载过来,以备不时查阅. 原文地址:http://www.cnblogs.com/moonz-wu/p/4211626.htm

[转]10个有关RESTful API良好设计的最佳实践

Web API已经在最近几年变成重要的话题,一个干净的API设计对于后端系统是非常重要的. 通常我们为Web API使用RESTful设计,REST概念分离了API结构和逻辑资源,通过Http方法GET, DELETE, POST 和 PUT来操作资源. 下面是进行RESTful Web API十个最佳实践,能为你提供一个良好的API设计风格. 1.使用名词而不是动词 Resource资源 GET读 POST创建 PUT修改 DELETE /cars 返回 cars集合 创建新的资源 批量更新c

好RESTful API的设计原则

说在前面,这篇文章是无意中发现的,因为感觉写的很好,所以翻译了一下.由于英文水平有限,难免有出错的地方,请看官理解一下.翻译和校正文章花了我大约2周的业余时间,如有人愿意转载请注明出处,谢谢^_^ Principles of good RESTful API Design 好RESTful API的设计原则 Good API design is hard! An API represents a contract between you and those who Consume your da

RESTful Api 身份认证安全性设计

REST是一种软件架构风格.RESTful Api 是基于 HTTP 协议的 Api,是无状态传输.它的核心是将所有的 Api 都理解为一个网络资源.将所有的客户端和服务器的状态转移(动作)封装到 HTTP 请求的 Method  之中. 详情可以阅读 http://mengkang.net/620.html . 而这篇文章则主要是讨论 RESTful Api 身份认证安全性设计. 没有绝对的安全,这个话题很深, 下文都是自己的一些理解,水平有限,如有勘误,希望大家予以指正. 由于 RESTfu

10个有关RESTful API良好设计的最佳实践

Web API已经在最近几年变成重要的话题,一个干净的API设计对于后端系统是非常重要的. 通常我们为Web API使用RESTful设计,REST概念分离了API结构和逻辑资源,通过Http方法GET, DELETE, POST 和 PUT来操作资源. 下面是进行RESTful Web API十个最佳实践,能为你提供一个良好的API设计风格. 1.使用名词而不是动词 Resource资源 GET读 POST创建 PUT修改 PATCH部分修改 DELETE /cars 返回 cars集合 创建

RESTful API的十个最佳实践

WebAPI在过去几年里非常的盛行,我们很多以往的技术手段都慢慢的转换为使用WebAPI来开发,因为它的语法简单规范化,以及轻量级等特点,这种方式收到了广泛的推崇. 通常我们使用RESTFul(Representational State Transfer)的设计方式来设计Web api,这通常用来分离API结构了业务逻辑,它使用典型的HTTP方法,诸如GET,POST.DELETE,PUT来和资源进行交互. 以下是设计RESTful API的是个最佳实践: 1. 使用名词而不是动词 为了易于理

Java EE 7 教程 第一部分 简介 第1章 概述 第1.8节 Java平台中的Java EE 7 API, 标准版7

原文:http://docs.oracle.com/javaee/7/tutorial/doc/overview008.htm 翻译:石卓林 [email protected] 1.8 Java EE 7 APIs in the Java Platform, Standard Edition 7 Several APIs that are required by the Java EE 7 platform are included in the Java Platform, Standard