Django Rest Framework — что это такое простыми словами. Часть 1

Привет всем! Я, наконец, дошел до того, что нужно разобраться с Django REST, и сегодняшняя запись будет небольшим конспектом, в котором (надеюсь) можно будет найти ответ на вопрос, который звучит как: Django Rest Framework — что это такое простыми словами?

Вдаваться в термины не буду. Кому интересно — переходим по ссылкам, и узнаем, что такое REST и когда он был придуман 🙂 По ссылке будет очень много букв, красивых терминов и прочего. Я же попробую сказать, что:
REST — это набор принципов, которые указывают как следует использовать HTTP и URL-адреса.

Кроме этого, у REST имеется пять принципов:

  1. Дайте все вещи идентификатору
  2. Свяжите все вещи вместе
  3. Используйте стандартизованные методы
  4. Особенности с несколькими представлениями
  5. Общение без статуса

Важно понять, что REST — не протокол (сродни HTTP и FTP). Это лишь архитектурная модель, основанная на HTTP-ресурсах:

  • GET
  • HEAD
  • POST
  • PUT
  • DELETE

Кроме этого RESTFul API и Django REST Framework имеют встроенные средства визуализации для всевозможных типов возвращаемых значений. Именно потому нельзя приравнивать REST к JSON, хотя этот самый JSON является наиболее широко используемым средством визуализации.

Теперь поговорим об архитектуре REST, которая основана на:

  1. Ресурсах:
    которые обычно в Django показываются через серилизаторы. Например: User/Invoice/Groupe
  2. Действиях:
    которые определяют, что любой, использующий API, планирует делать с ресурсом. Все действия сопоставляются с HTTP VERBS, и наиболее часто используемыми являются: GET/POST/PUT/PATCH/DELETE.

    Например:

    1. GET/users #Возвращает список пользователей 
    2. GET/users/<id> #Возвращаем информацию по конкретному пользователю
    3. POST/users #Создаем нового пользователя 
    4. PUT/users/<id> #Полностью изменяем определенного пользователя
    5. PATCH/users/<id> #Частично обновляем информацию пользователя 
    6. DELETE/users/<id> #Удаляем определенного пользователя
  3. Представлениях:
    которые в REST — означают то, как данные ресурса показываются тому, кто делает запрос в конкретной конечной точке. Чаще всего эти функции показываются в формате JSON (но никто не говорит, что они могут иметь другие форматы).

    1. [ 
    2.   { 
    3.   «id»: 1, 
    4.   «name»: «Vasya Pupkin», 
    5.   }, 
    6.   { 
    7.   «id»: 2, 
    8.   «name»: «Pisya Kamushkin», 
    9.   }, 
    10.   { 
    11.   «id»: 3, 
    12.   «name»: «Ivan Petrov», 
    13.   } 
    14.   ]

На этом азы закончены. Более подробно о работе с Django REST Framework мы поговорим уже завтра (надеюсь, а то я еще сам вникаю 🙂 ).

Как всегда — в случае возникновения вопросов пишите на почту, или в Telegram.