feat: base 完善获取修改单个缓存的接口
This commit is contained in:
parent
4b4ff8f5ec
commit
cd0e469af3
|
|
@ -29,3 +29,7 @@ class TextListSerializer(serializers.Serializer):
|
|||
name = serializers.CharField()
|
||||
filepath = serializers.CharField()
|
||||
size = serializers.CharField(label="MB")
|
||||
|
||||
class CacheUpdateSerializer(serializers.Serializer):
|
||||
value = serializers.JSONField()
|
||||
timeout = serializers.IntegerField()
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from rest_framework.views import APIView
|
|||
from rest_framework.permissions import IsAuthenticated
|
||||
from django.conf import settings
|
||||
import os
|
||||
from apps.ops.serializers import DbbackupDeleteSerializer, MemDiskSerializer, CpuSerializer, DrfRequestLogSerializer, TlogSerializer, TextListSerializer
|
||||
from apps.ops.serializers import DbbackupDeleteSerializer, MemDiskSerializer, CpuSerializer, DrfRequestLogSerializer, TlogSerializer, TextListSerializer, CacheUpdateSerializer
|
||||
from rest_framework.exceptions import NotFound
|
||||
from rest_framework.mixins import ListModelMixin
|
||||
from apps.ops.filters import DrfLogFilterSet, TlogFilterSet
|
||||
|
|
@ -20,6 +20,7 @@ from drf_yasg.utils import swagger_auto_schema
|
|||
from apps.ops.service import ServerService, CeleryMonitor, RedisMonitor
|
||||
from server.settings import BACKUP_PATH
|
||||
from django.core.cache import cache
|
||||
from rest_framework.serializers import Serializer
|
||||
# Create your views here.
|
||||
|
||||
|
||||
|
|
@ -233,14 +234,20 @@ class DbBackupView(APIView):
|
|||
class CacheView(APIView):
|
||||
permission_classes = [IsAdminUser]
|
||||
|
||||
@swagger_auto_schema(operation_summary="获取value", responses={204: None})
|
||||
@swagger_auto_schema(operation_summary="获取value", responses={200: Serializer})
|
||||
def get(self, request, key):
|
||||
return Response({"value": cache.get(key, None)})
|
||||
try:
|
||||
value = cache.get(key)
|
||||
except Exception as e:
|
||||
raise NotFound(str(e))
|
||||
return Response({"value": value})
|
||||
|
||||
@swagger_auto_schema(operation_summary="修改value", responses={204: None})
|
||||
@swagger_auto_schema(operation_summary="修改value", responses={200: None}, request_body=CacheUpdateSerializer)
|
||||
def post(self, request, key):
|
||||
if "value" in request.data and request.data["value"] is not None:
|
||||
cache.set(key, request.data.get("value"))
|
||||
sr = CacheUpdateSerializer(data=request.data)
|
||||
sr.is_valid(raise_exception=True)
|
||||
vdata = sr.validated_data
|
||||
cache.set(key, vdata['value'], timeout=vdata["timeout"])
|
||||
return Response()
|
||||
|
||||
class DrfRequestLogViewSet(ListModelMixin, CustomGenericViewSet):
|
||||
|
|
|
|||
Loading…
Reference in New Issue