REST中更新操作使用PUT,还是PATCH?

RESTful 使用POST来创建一个资源,使用PUT或者PATCH来更新一个资源。

区别是:
– PUT用来整体更新一个资源,所以请求中必须包含完整的资源信息。如果缺少部分信息,会导致这部分数据被更新为NULL。

– PATCH则是部分更新。仅更新提供的字段,请求中缺少的字段仍保持不变。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Django Rest Framework 示例: 首先,安装 `django` 和 `djangorestframework`: ``` pip install django pip install djangorestframework ``` 在项目创建一个新的应用程序: ``` python manage.py startapp myapp ``` 在 `myapp` 应用程序的 `models.py` 定义一个模型: ```python from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) publication_date = models.DateField() price = models.DecimalField(max_digits=5, decimal_places=2) def __str__(self): return self.title ``` 在 `myapp` 应用程序的 `serializers.py` 定义一个序列化器: ```python from rest_framework import serializers from .models import Book class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = '__all__' ``` 在 `myapp` 应用程序的 `views.py` 定义一个视图: ```python from rest_framework import generics from .models import Book from .serializers import BookSerializer class BookList(generics.ListCreateAPIView): queryset = Book.objects.all() serializer_class = BookSerializer class BookDetail(generics.RetrieveUpdateDestroyAPIView): queryset = Book.objects.all() serializer_class = BookSerializer ``` 现在,在项目的 `urls.py` 文件,将以下 URL 映射到我们的新视图: ```python from django.urls import path from myapp.views import BookList, BookDetail urlpatterns = [ path('books/', BookList.as_view(), name='book-list'), path('books/<int:pk>/', BookDetail.as_view(), name='book-detail'), ] ``` 现在,我们可以使用 Django Rest Framework 测试我们的 API。启动 Django 开发服务器: ``` python manage.py runserver ``` 在浏览器访问 `http://localhost:8000/books/`,你应该看到一个空的 JSON 数组。现在,我们可以使用 POST 请求添加一些书籍: ``` curl -X POST -H 'Content-Type: application/json' -d '{"title": "My Book", "author": "John Smith", "publication_date": "2021-01-01", "price": 19.99}' http://localhost:8000/books/ ``` 现在,我们可以使用 GET 请求获取所有书籍: ``` curl http://localhost:8000/books/ ``` 我们还可以使用 GET 请求获取单个书籍: ``` curl http://localhost:8000/books/1/ ``` 最后,我们可以使用 PUT 或 PATCH 请求更新书籍: ``` curl -X PUT -H 'Content-Type: application/json' -d '{"title": "My Book Revised", "author": "John Smith", "publication_date": "2021-01-01", "price": 24.99}' http://localhost:8000/books/1/ ``` 还可以使用 DELETE 请求删除书籍: ``` curl -X DELETE http://localhost:8000/books/1/ ``` 这就是一个简单的 Django Rest Framework 示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值