Слово REST пугало как синоним «сложной архитектуры», пока я не собрал мини-API сам и не увидел: это просто соглашение о том, как клиент и сервер договариваются про ресурсы. Страх сдулся, когда вместо терминов я начал думать «какие вещи у меня есть и что с ними можно делать»: создать, получить список, посмотреть одну, удалить.
Нейтрально: REST маппит ресурс (например, «привычка») на адрес и HTTP-глагол. GET — получить, POST — создать, PUT/PATCH — изменить, DELETE — удалить. Роутинг в Django распределяет адреса по обработчикам.
# urls.py (мини)
path("habits/", habits_list), # GET — список
path("habits//", habit_detail) # GET — один / DELETE
# views: одна функция на действие
def habits_list(request):
if request.method == "GET":
data = [{"id": h.id, "name": h.name} for h in Habit.objects.all()]
return JsonResponse(data, safe=False)
Когда REST превратился из слова в «путь + глагол», исчез и страх «архитектуры». Начал понимать, что собеседователи спрашивают не про магию, а про то, могу ли я спроектировать адреса и методы под простую задачу.