feat: base 完善获取修改单个缓存的接口
This commit is contained in:
parent
4b4ff8f5ec
commit
cd0e469af3
|
|
@ -29,3 +29,7 @@ class TextListSerializer(serializers.Serializer):
|
||||||
name = serializers.CharField()
|
name = serializers.CharField()
|
||||||
filepath = serializers.CharField()
|
filepath = serializers.CharField()
|
||||||
size = serializers.CharField(label="MB")
|
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 rest_framework.permissions import IsAuthenticated
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
import os
|
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.exceptions import NotFound
|
||||||
from rest_framework.mixins import ListModelMixin
|
from rest_framework.mixins import ListModelMixin
|
||||||
from apps.ops.filters import DrfLogFilterSet, TlogFilterSet
|
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 apps.ops.service import ServerService, CeleryMonitor, RedisMonitor
|
||||||
from server.settings import BACKUP_PATH
|
from server.settings import BACKUP_PATH
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
|
from rest_framework.serializers import Serializer
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -233,14 +234,20 @@ class DbBackupView(APIView):
|
||||||
class CacheView(APIView):
|
class CacheView(APIView):
|
||||||
permission_classes = [IsAdminUser]
|
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):
|
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):
|
def post(self, request, key):
|
||||||
if "value" in request.data and request.data["value"] is not None:
|
sr = CacheUpdateSerializer(data=request.data)
|
||||||
cache.set(key, request.data.get("value"))
|
sr.is_valid(raise_exception=True)
|
||||||
|
vdata = sr.validated_data
|
||||||
|
cache.set(key, vdata['value'], timeout=vdata["timeout"])
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
class DrfRequestLogViewSet(ListModelMixin, CustomGenericViewSet):
|
class DrfRequestLogViewSet(ListModelMixin, CustomGenericViewSet):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue