Обновление частичных данных в БД при получении данных должно считаться как GET или PUT запрос в REST API
Мой класс должен получать информацию о текущей песне из Spotify api.
class GetCurrentSong(APIView):
def get(self, request):
dict_song_info = get_song_from_spotify(user_session=self.request.session.session_key)
if 'Error' in dict_song_info:
return Response({dict_song_info['Error_Type']: dict_song_info['Error']}, status=dict_song_info['Status'])
# Update song name in database
try:
self.update_song_info_in_db(dict_song_info['name'])
except Exception as ex:
return Response({'Storage Error': 'Caanot persist current song info to database'}, status=status.HTTP_406_NOT_ACCEPTABLE)
return Response(dict_song_info, status=status.HTTP_200_OK)
Помимо получения информации о песне и рендеринга на фронтенд, мне также нужно обновить данные о названии песни в БД перед рендерингом.
Мой вопрос: эта функция подразумевает обновление данных (не создание новых записей, а просто обновление существующей записи). Считается ли она все еще как "Get"? Или на самом деле, я должен использовать "PUT" для этой функции?
GET vs PUT - это семантика запроса, а не детали реализации.
Если я запрашиваю у вас текущую копию веб-страницы, это GET, даже если вашей реализации нужно загрузить информацию откуда-то еще и записать в собственный локальный кэш/базу данных.