m3-rest-gar


Namem3-rest-gar JSON
Version 1.0.44 PyPI version JSON
download
home_pageNone
SummaryREST-service for GAR.
upload_time2024-03-30 05:19:48
maintainerNone
docs_urlNone
authorBARS Group
requires_pythonNone
licenseMIT
keywords django rest gar
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            REST-сервис на django-rest-framework для доступа к базе ГАР
------------------------------------------------------------

Этот сервис - результат объединения разработок:

* django-rest-framework <http://www.django-rest-framework.org/>
* m3-gar

Формат сервиса
--------------

Список адресных объектов
========================

::

    GET /gar/v1/addrobj/

:Параметры:

:level:
    Тип: число или список чисел через запятую.

    Фильтрация по уровню адресного объекта.

:parent:
    Тип: `hierarchy:objectid`
        `hierarchy` - Вид иерархии - `all`, `mun` или `adm`

        `objectid` - `objectid` родительского объекта

    Фильтрация по родительскому адресному объекту.
:region_code:
    Тип: число или список чисел через запятую.

    Фильтрация по коду региона.
:name:
    Тип: строка символов.

    Поиск адресного объекта по содержанию строки в наименовании.

:page:
    Тип: число.

    Страница вывода результатов.

----

:Результат:
    Тип: application/json.

    Результаты выводятся по страницам согласно настройкам DRF.

----

:Примеры:

::

    GET /gar/v1/addrobj/?name=Шамбалыгский&level=8&parent=adm:210893

    {
      "count": 1,
      "next": null,
      "previous": null,
      "results": [
        {
          "id": 250006,
          "params": [
            {
              "id": 3197562,
              "typeid": {
                "id": 5,
                "name": "Почтовый индекс",
                "code": "PostIndex",
                "desc": "Информация о почтовом индексе",
                "updatedate": "2018-06-15",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 207679,
              "changeid": 533863,
              "changeidend": 0,
              "value": "667901",
              "updatedate": "2017-11-16",
              "startdate": "1900-01-01",
              "enddate": "2079-06-06"
            }
          ],
          "objectguid": "7effc9de-7888-440b-b2a0-cc5432bc09a5",
          "changeid": 533888,
          "name": "Шамбалыгский",
          "typename": "пер",
          "level": "8",
          "previd": 249989,
          "nextid": 0,
          "updatedate": "2019-12-13",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06",
          "isactual": true,
          "isactive": true,
          "opertypeid": 1,
          "objectid": 207679
        }
      ]
    }


Адресный объект
===============
::

    GET /gar/v1/addrobj/:objectid:/

:Параметры:

:objectid:
    Тип: число.

    Идентификатор адресного объекта


----

:Результат:
    Тип: application/json.

----

:Примеры:

::

    GET /gar/v1/addrobj/207679/

    {
      "id": 250006,
      "params": [
        {
          "id": 3197562,
          "typeid": {
            "id": 5,
            "name": "Почтовый индекс",
            "code": "PostIndex",
            "desc": "Информация о почтовом индексе",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 207679,
          "changeid": 533863,
          "changeidend": 0,
          "value": "667901",
          "updatedate": "2017-11-16",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        }
      ],
      "objectguid": "7effc9de-7888-440b-b2a0-cc5432bc09a5",
      "changeid": 533888,
      "name": "Шамбалыгский",
      "typename": "пер",
      "level": "8",
      "previd": 249989,
      "nextid": 0,
      "updatedate": "2019-12-13",
      "startdate": "1900-01-01",
      "enddate": "2079-06-06",
      "isactual": true,
      "isactive": true,
      "opertypeid": 1,
      "objectid": 207679
    }

Список домов
============

::

    GET /gar/v1/houses/


:Параметры:

:parent:
    Тип: `hierarchy:objectid`
        `hierarchy` - Вид иерархии - `all`, `mun` или `adm`

        `objectid` - `objectid` родительского объекта

    Фильтрация по родительскому адресному объекту.

:housenum:
    Тип: строка символов.

    Поиск дома по содержанию строки в номере.

:page:
    Тип: число. Страница вывода результатов.

----

:Результат:
    Тип: application/json.

    Результаты выводятся по страницам согласно настройкам DRF.

----

:Примеры:

::

    GET /gar/v1/houses/?parent=adm:210826&name=5

    {
      "count": 65,
      "next": "http://127.0.0.1:8000/gar/v1/houses/?name=5&page=2&parent=adm%3A210826",
      "previous": null,
      "results": [
        {
          "id": 52384730,
          "params": [
            {
              "id": 197175620,
              "typeid": {
                "id": 3,
                "name": "ИНН ФЛ ТЕР УЧ",
                "code": "territorialifnsflcode",
                "desc": "Территориальный участок ИФНС ЮЛ",
                "updatedate": "2018-06-15",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 158819227,
              "value": "1717",
              "updatedate": "2020-11-21",
              "startdate": "1900-01-01",
              "enddate": "2020-11-21"
            },
            {
              "id": 197175630,
              "typeid": {
                "id": 6,
                "name": "ОКАТО",
                "code": "OKATO",
                "desc": "ОКАТО",
                "updatedate": "2018-06-19",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 0,
              "value": "93243825001",
              "updatedate": "2019-12-14",
              "startdate": "1900-01-01",
              "enddate": "2079-06-06"
            },
            {
              "id": 197175631,
              "typeid": {
                "id": 5,
                "name": "Почтовый индекс",
                "code": "PostIndex",
                "desc": "Информация о почтовом индексе",
                "updatedate": "2018-06-15",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 0,
              "value": "667903",
              "updatedate": "2019-12-14",
              "startdate": "1900-01-01",
              "enddate": "2079-06-06"
            },
            {
              "id": 197175643,
              "typeid": {
                "id": 14,
                "name": "Признак присвоения адреса",
                "code": "DivisionType",
                "desc": "Признак в каком делении присвоен адрес, муниципальном/административном",
                "updatedate": "2018-12-14",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 0,
              "value": "0",
              "updatedate": "2019-12-14",
              "startdate": "1900-01-01",
              "enddate": "2079-06-06"
            },
            {
              "id": 197175692,
              "typeid": {
                "id": 15,
                "name": "Порядковый номер",
                "code": "Counter",
                "desc": "Порядковый номер обьекта в рамках родителя",
                "updatedate": "2018-12-14",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 0,
              "value": "18",
              "updatedate": "2019-12-14",
              "startdate": "1900-01-01",
              "enddate": "2079-06-06"
            },
            {
              "id": 197175626,
              "typeid": {
                "id": 7,
                "name": "OKTMO",
                "code": "OKTMO",
                "desc": "OKTMO",
                "updatedate": "2018-06-19",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 51296790,
              "value": "93643425",
              "updatedate": "2019-12-14",
              "startdate": "1900-01-01",
              "enddate": "2019-12-13"
            },
            {
              "id": 197175728,
              "typeid": {
                "id": 7,
                "name": "OKTMO",
                "code": "OKTMO",
                "desc": "OKTMO",
                "updatedate": "2018-06-19",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296790,
              "changeidend": 0,
              "value": "93643425101",
              "updatedate": "2019-12-14",
              "startdate": "2019-12-13",
              "enddate": "2079-06-06"
            },
            {
              "id": 197175636,
              "typeid": {
                "id": 13,
                "name": "Реестровый номер",
                "code": "ReestrNum",
                "desc": "Реестровый номер адресного объекта",
                "updatedate": "2018-11-12",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 51296790,
              "value": "936434251010000000220018000000005",
              "updatedate": "2019-12-14",
              "startdate": "1900-01-01",
              "enddate": "2019-12-13"
            },
            {
              "id": 197176157,
              "typeid": {
                "id": 13,
                "name": "Реестровый номер",
                "code": "ReestrNum",
                "desc": "Реестровый номер адресного объекта",
                "updatedate": "2018-11-12",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296790,
              "changeidend": 0,
              "value": "936434251010000000220018000000000",
              "updatedate": "2019-12-14",
              "startdate": "2019-12-13",
              "enddate": "2079-06-06"
            },
            {
              "id": 197173900,
              "typeid": {
                "id": 1,
                "name": "ИФНС ФЛ",
                "code": "IFNSFL",
                "desc": "ИФНС ФЛ",
                "updatedate": "2018-06-15",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 158819227,
              "value": "1720",
              "updatedate": "2020-11-21",
              "startdate": "1900-01-01",
              "enddate": "2020-11-21"
            },
            {
              "id": 679599960,
              "typeid": {
                "id": 1,
                "name": "ИФНС ФЛ",
                "code": "IFNSFL",
                "desc": "ИФНС ФЛ",
                "updatedate": "2018-06-15",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 158819227,
              "changeidend": 0,
              "value": "1700",
              "updatedate": "2020-11-21",
              "startdate": "2020-11-21",
              "enddate": "2079-06-06"
            },
            {
              "id": 679666370,
              "typeid": {
                "id": 2,
                "name": "ИФНС ЮЛ",
                "code": "IFNSUL",
                "desc": "ИФНС ЮЛ",
                "updatedate": "2018-06-15",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 158819227,
              "changeidend": 0,
              "value": "1700",
              "updatedate": "2020-11-21",
              "startdate": "2020-11-21",
              "enddate": "2079-06-06"
            },
            {
              "id": 197175624,
              "typeid": {
                "id": 4,
                "name": "ИФНС ЮЛ ТЕР УЧ",
                "code": "territorialifnsulcode",
                "desc": "Территориальный участок ИФНС ФЛ",
                "updatedate": "2018-06-15",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 158819227,
              "value": "1717",
              "updatedate": "2020-11-21",
              "startdate": "1900-01-01",
              "enddate": "2020-11-21"
            },
            {
              "id": 197175616,
              "typeid": {
                "id": 2,
                "name": "ИФНС ЮЛ",
                "code": "IFNSUL",
                "desc": "ИФНС ЮЛ",
                "updatedate": "2018-06-15",
                "startdate": "2011-11-01",
                "enddate": "2079-06-06",
                "isactive": true
              },
              "objectid": 33665495,
              "changeid": 51296115,
              "changeidend": 158819227,
              "value": "1720",
              "updatedate": "2020-11-21",
              "startdate": "1900-01-01",
              "enddate": "2020-11-21"
            }
          ],
          "housetype": {
            "id": 3,
            "name": "Домовладение",
            "shortname": "двлд.",
            "desc": "Домовладение",
            "updatedate": "1900-01-01",
            "startdate": "1900-01-01",
            "enddate": "2015-11-05",
            "isactive": false
          },
          "addtype1": null,
          "addtype2": null,
          "objectguid": "0e27bfa6-d3e2-4160-967a-5f14d43fbc98",
          "changeid": 51296790,
          "housenum": "18",
          "addnum1": null,
          "addnum2": null,
          "previd": 20010713,
          "nextid": 0,
          "updatedate": "2019-12-14",
          "startdate": "2019-12-13",
          "enddate": "2079-06-06",
          "isactual": true,
          "isactive": true,
          "opertypeid": 20,
          "objectid": 33665495
        }
      ]
    }


Информация о доме
=================
::

    GET /gar/v1/houses/:objectid:/

:Параметры:

:objectid:
    Тип: число.

    Идентификатор дома


----

:Результат:
    Тип: application/json.

----

:Примеры:

::

    GET /gar/v1/houses/33663074/

    {
      "id": 60865585,
      "params": [
        {
          "id": 197161766,
          "typeid": {
            "id": 1,
            "name": "ИФНС ФЛ",
            "code": "IFNSFL",
            "desc": "ИФНС ФЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 158819225,
          "value": "1720",
          "updatedate": "2020-11-21",
          "startdate": "1900-01-01",
          "enddate": "2020-11-21"
        },
        {
          "id": 197163461,
          "typeid": {
            "id": 13,
            "name": "Реестровый номер",
            "code": "ReestrNum",
            "desc": "Реестровый номер адресного объекта",
            "updatedate": "2018-11-12",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51293350,
          "changeidend": 0,
          "value": "936434251010000000220012000000000",
          "updatedate": "2019-12-14",
          "startdate": "2019-12-13",
          "enddate": "2079-06-06"
        },
        {
          "id": 197163411,
          "typeid": {
            "id": 6,
            "name": "ОКАТО",
            "code": "OKATO",
            "desc": "ОКАТО",
            "updatedate": "2018-06-19",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 0,
          "value": "93243825001",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        },
        {
          "id": 197163416,
          "typeid": {
            "id": 5,
            "name": "Почтовый индекс",
            "code": "PostIndex",
            "desc": "Информация о почтовом индексе",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 0,
          "value": "667903",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        },
        {
          "id": 197163430,
          "typeid": {
            "id": 14,
            "name": "Признак присвоения адреса",
            "code": "DivisionType",
            "desc": "Признак в каком делении присвоен адрес, муниципальном/административном",
            "updatedate": "2018-12-14",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 0,
          "value": "0",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        },
        {
          "id": 197163432,
          "typeid": {
            "id": 15,
            "name": "Порядковый номер",
            "code": "Counter",
            "desc": "Порядковый номер обьекта в рамках родителя",
            "updatedate": "2018-12-14",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 0,
          "value": "12",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2079-06-06"
        },
        {
          "id": 197163408,
          "typeid": {
            "id": 7,
            "name": "OKTMO",
            "code": "OKTMO",
            "desc": "OKTMO",
            "updatedate": "2018-06-19",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 51293350,
          "value": "93643425",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2019-12-13"
        },
        {
          "id": 197163454,
          "typeid": {
            "id": 7,
            "name": "OKTMO",
            "code": "OKTMO",
            "desc": "OKTMO",
            "updatedate": "2018-06-19",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51293350,
          "changeidend": 0,
          "value": "93643425101",
          "updatedate": "2019-12-14",
          "startdate": "2019-12-13",
          "enddate": "2079-06-06"
        },
        {
          "id": 197163423,
          "typeid": {
            "id": 13,
            "name": "Реестровый номер",
            "code": "ReestrNum",
            "desc": "Реестровый номер адресного объекта",
            "updatedate": "2018-11-12",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 51293350,
          "value": "936434251010000000220012000000005",
          "updatedate": "2019-12-14",
          "startdate": "1900-01-01",
          "enddate": "2019-12-13"
        },
        {
          "id": 197163397,
          "typeid": {
            "id": 3,
            "name": "ИНН ФЛ ТЕР УЧ",
            "code": "territorialifnsflcode",
            "desc": "Территориальный участок ИФНС ЮЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 158819225,
          "value": "1717",
          "updatedate": "2020-11-21",
          "startdate": "1900-01-01",
          "enddate": "2020-11-21"
        },
        {
          "id": 679599958,
          "typeid": {
            "id": 1,
            "name": "ИФНС ФЛ",
            "code": "IFNSFL",
            "desc": "ИФНС ФЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 158819225,
          "changeidend": 0,
          "value": "1700",
          "updatedate": "2020-11-21",
          "startdate": "2020-11-21",
          "enddate": "2079-06-06"
        },
        {
          "id": 197163402,
          "typeid": {
            "id": 4,
            "name": "ИФНС ЮЛ ТЕР УЧ",
            "code": "territorialifnsulcode",
            "desc": "Территориальный участок ИФНС ФЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 158819225,
          "value": "1717",
          "updatedate": "2020-11-21",
          "startdate": "1900-01-01",
          "enddate": "2020-11-21"
        },
        {
          "id": 197161768,
          "typeid": {
            "id": 2,
            "name": "ИФНС ЮЛ",
            "code": "IFNSUL",
            "desc": "ИФНС ЮЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 51292720,
          "changeidend": 158819225,
          "value": "1720",
          "updatedate": "2020-11-21",
          "startdate": "1900-01-01",
          "enddate": "2020-11-21"
        },
        {
          "id": 679666368,
          "typeid": {
            "id": 2,
            "name": "ИФНС ЮЛ",
            "code": "IFNSUL",
            "desc": "ИФНС ЮЛ",
            "updatedate": "2018-06-15",
            "startdate": "2011-11-01",
            "enddate": "2079-06-06",
            "isactive": true
          },
          "objectid": 33663074,
          "changeid": 158819225,
          "changeidend": 0,
          "value": "1700",
          "updatedate": "2020-11-21",
          "startdate": "2020-11-21",
          "enddate": "2079-06-06"
        }
      ],
      "housetype": {
        "id": 3,
        "name": "Домовладение",
        "shortname": "двлд.",
        "desc": "Домовладение",
        "updatedate": "1900-01-01",
        "startdate": "1900-01-01",
        "enddate": "2015-11-05",
        "isactive": false
      },
      "addtype1": null,
      "addtype2": null,
      "objectguid": "85e4ae37-bd1a-42ec-ad27-5c4343d53adf",
      "changeid": 51293350,
      "housenum": "12",
      "addnum1": null,
      "addnum2": null,
      "previd": 20009203,
      "nextid": 0,
      "updatedate": "2019-12-14",
      "startdate": "2019-12-13",
      "enddate": "2079-06-06",
      "isactual": true,
      "isactive": true,
      "opertypeid": 20,
      "objectid": 33663074
    }



Установка
---------

1. Установите `m3-rest-gar`::

    pip install m3-rest-gar

2. Добавьте `rest_framework, `django_filters`, `m3_gar`, `m3_rest_gar`
в `INSTALLED_APPS` и установите `DjangoFilterBackend`

::

    INSTALLED_APPS = [
        ...,
        'rest_framework',
        'django_filters',
        'm3_gar',
        'm3_rest_gar',
    ]

    REST_FRAMEWORK = {
        ...,
        'DEFAULT_FILTER_BACKENDS': [
            'django_filters.rest_framework.DjangoFilterBackend',
        ],
    }

3. Настройте `m3_gar` и импортируйте данные

4. Добавьте urlpatterns m3_rest_gar

::

    urlpatterns = [
        ...,
        path('gar/', include('m3_rest_gar.urls')),
    ]


Настройка аутентификации OAuth2
-------------------------------

Установить пакет OAuth2

::

    pip install django-oauth-toolkit


Настроить приложение (settings.py)

::

    INSTALLED_APPS = [
        ...
        'oauth2_provider',
    ]

    MIDDLEWARE = [
        ...,
        'oauth2_provider.middleware.OAuth2TokenMiddleware',
    ]

    AUTHENTICATION_BACKENDS = [
        'oauth2_provider.backends.OAuth2Backend',
        # Если нужен доступ в /admin:
        # 'django.contrib.auth.backends.ModelBackend',
    ]

    REST_FRAMEWORK = {
        ...,
        'DEFAULT_AUTHENTICATION_CLASSES': [
            'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
        ],
        'DEFAULT_PERMISSION_CLASSES': [
            'rest_framework.permissions.IsAuthenticated',
        ],
    }

Добавить urlpatterns (urls.py)

::

    urlpatterns = patterns('',
        ...
        path('oauth2/', include('oauth2_provider.urls', namespace='oauth2_provider')),
    )


Выполнить миграцию базы

::

    python manage.py migrate


Регистрация клиентского приложения
==================================

Заходим в django-admin /admin

В разделе Users создаем пользователя от имени которого будут выполняться запросы.
(Можно всех клиентов привязать к одному пользователю, они всё-равно будут отличаться номером клиента)

В разделе Applications создаем клиента,
* выбираем пользователя
* `Client type` указываем *Confidencial*
* `Authorization grant type` указываем *Resource owner password-based*
* сохраняем клиента


Обращение к сервису из клиентского приложения
=============================================

1. Получение токена

Для получения токена нужно выполнить POST-запрос:

  POST /oauth2/token/

:Параметры:

:client_id:
    Тип: строка символов. Идентификатор клиентского приложения

:client_secret:
    Тип: строка символов. Секретный ключ клиентского приложения

:grant_type:
    Тип: строка символов. Тип идентификации клиента. Доступные значения: *password*

:username:
    Тип: строка символов. Имя пользователя, которому выдается токен

:password:
    Тип: строка символов. Пароль пользователя

----

:Результат:
    Тип: application/json.

::

    {
        "access_token": токен для доступа к сервису,
        "token_type": "Bearer",
        "expires_in": время жизни токена в секундах,
        "refresh_token": токен для обновления,
        "scope": "read"
    }


2. Запрос данных

После получения токена его нужно указать в заголовке запроса к сервису:

::
    Authorization: Bearer <токен>


Локальное развертывание сервиса с использованием PyCharm (для разработчиков)
============================================================================

1. Создать отдельный Django-проект с виртуальным окружением (по умолчанию PROJECT_DIR/venv). Здесь и далее PROJECT_DIR - директория PyCharm проекта.

2. Установить пакеты в виртуальное окружение::

    pip install --src PROJECT_DIR -e git+ssh://git@stash.bars-open.ru:7999/m3/m3-gar.git@master#egg=m3_gar
    pip install --src PROJECT_DIR -e git+ssh://git@stash.bars-open.ru:7999/m3/m3-rest-gar.git@master#egg=m3_rest_gar

3. Отметить следующие директории как директории с исходниками (Mark as Sources Root)::

    PROJECT_DIR/m3-gar/m3_gar
    PROJECT_DIR/m3-rest-gar/m3_rest_gar

4. Создать в директории PROJECT_DIR/m3-rest-gar/test_project/test_project файл local_settings.py, скопировать в него содержимое dev_settings.py, подменить настройки, если потребуется.

5. Актуализировать настройки PyCharm. File->Settings->Languages & Frameworks->Django::

    Django project root: PROJECT_DIR/m3-rest-gar/test_project
    Settings: PROJECT_DIR/m3-rest-gar/test_project/test_project/local_settings.py.

6. Запустить Django сервер.

7. В клиентском приложении, которое будет использовать локально развернутый m3-rest-gar, необходимо подменить URL сервиса ГАР на локальный.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "m3-rest-gar",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "django rest gar",
    "author": "BARS Group",
    "author_email": "bars@bars.group",
    "download_url": "https://files.pythonhosted.org/packages/1e/5f/afe522a6686b99604f9f7c0662dbd3d5f9a3bde839348d0ae70582f0764b/m3-rest-gar-1.0.44.tar.gz",
    "platform": null,
    "description": "REST-\u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0430 django-rest-framework \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0430\u0437\u0435 \u0413\u0410\u0420\n------------------------------------------------------------\n\n\u042d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 - \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043e\u043a:\n\n* django-rest-framework <http://www.django-rest-framework.org/>\n* m3-gar\n\n\u0424\u043e\u0440\u043c\u0430\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\n--------------\n\n\u0421\u043f\u0438\u0441\u043e\u043a \u0430\u0434\u0440\u0435\u0441\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\n========================\n\n::\n\n    GET /gar/v1/addrobj/\n\n:\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n\n:level:\n    \u0422\u0438\u043f: \u0447\u0438\u0441\u043b\u043e \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0447\u0438\u0441\u0435\u043b \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e.\n\n    \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430.\n\n:parent:\n    \u0422\u0438\u043f: `hierarchy:objectid`\n        `hierarchy` - \u0412\u0438\u0434 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 - `all`, `mun` \u0438\u043b\u0438 `adm`\n\n        `objectid` - `objectid` \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n\n    \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443.\n:region_code:\n    \u0422\u0438\u043f: \u0447\u0438\u0441\u043b\u043e \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0447\u0438\u0441\u0435\u043b \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e.\n\n    \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u043e\u0434\u0443 \u0440\u0435\u0433\u0438\u043e\u043d\u0430.\n:name:\n    \u0422\u0438\u043f: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.\n\n    \u041f\u043e\u0438\u0441\u043a \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044e \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0438.\n\n:page:\n    \u0422\u0438\u043f: \u0447\u0438\u0441\u043b\u043e.\n\n    \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.\n\n----\n\n:\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\n    \u0422\u0438\u043f: application/json.\n\n    \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c DRF.\n\n----\n\n:\u041f\u0440\u0438\u043c\u0435\u0440\u044b:\n\n::\n\n    GET /gar/v1/addrobj/?name=\u0428\u0430\u043c\u0431\u0430\u043b\u044b\u0433\u0441\u043a\u0438\u0439&level=8&parent=adm:210893\n\n    {\n      \"count\": 1,\n      \"next\": null,\n      \"previous\": null,\n      \"results\": [\n        {\n          \"id\": 250006,\n          \"params\": [\n            {\n              \"id\": 3197562,\n              \"typeid\": {\n                \"id\": 5,\n                \"name\": \"\u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\",\n                \"code\": \"PostIndex\",\n                \"desc\": \"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0435\",\n                \"updatedate\": \"2018-06-15\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 207679,\n              \"changeid\": 533863,\n              \"changeidend\": 0,\n              \"value\": \"667901\",\n              \"updatedate\": \"2017-11-16\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2079-06-06\"\n            }\n          ],\n          \"objectguid\": \"7effc9de-7888-440b-b2a0-cc5432bc09a5\",\n          \"changeid\": 533888,\n          \"name\": \"\u0428\u0430\u043c\u0431\u0430\u043b\u044b\u0433\u0441\u043a\u0438\u0439\",\n          \"typename\": \"\u043f\u0435\u0440\",\n          \"level\": \"8\",\n          \"previd\": 249989,\n          \"nextid\": 0,\n          \"updatedate\": \"2019-12-13\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2079-06-06\",\n          \"isactual\": true,\n          \"isactive\": true,\n          \"opertypeid\": 1,\n          \"objectid\": 207679\n        }\n      ]\n    }\n\n\n\u0410\u0434\u0440\u0435\u0441\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\n===============\n::\n\n    GET /gar/v1/addrobj/:objectid:/\n\n:\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n\n:objectid:\n    \u0422\u0438\u043f: \u0447\u0438\u0441\u043b\u043e.\n\n    \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n\n\n----\n\n:\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\n    \u0422\u0438\u043f: application/json.\n\n----\n\n:\u041f\u0440\u0438\u043c\u0435\u0440\u044b:\n\n::\n\n    GET /gar/v1/addrobj/207679/\n\n    {\n      \"id\": 250006,\n      \"params\": [\n        {\n          \"id\": 3197562,\n          \"typeid\": {\n            \"id\": 5,\n            \"name\": \"\u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\",\n            \"code\": \"PostIndex\",\n            \"desc\": \"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0435\",\n            \"updatedate\": \"2018-06-15\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 207679,\n          \"changeid\": 533863,\n          \"changeidend\": 0,\n          \"value\": \"667901\",\n          \"updatedate\": \"2017-11-16\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2079-06-06\"\n        }\n      ],\n      \"objectguid\": \"7effc9de-7888-440b-b2a0-cc5432bc09a5\",\n      \"changeid\": 533888,\n      \"name\": \"\u0428\u0430\u043c\u0431\u0430\u043b\u044b\u0433\u0441\u043a\u0438\u0439\",\n      \"typename\": \"\u043f\u0435\u0440\",\n      \"level\": \"8\",\n      \"previd\": 249989,\n      \"nextid\": 0,\n      \"updatedate\": \"2019-12-13\",\n      \"startdate\": \"1900-01-01\",\n      \"enddate\": \"2079-06-06\",\n      \"isactual\": true,\n      \"isactive\": true,\n      \"opertypeid\": 1,\n      \"objectid\": 207679\n    }\n\n\u0421\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u043c\u043e\u0432\n============\n\n::\n\n    GET /gar/v1/houses/\n\n\n:\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n\n:parent:\n    \u0422\u0438\u043f: `hierarchy:objectid`\n        `hierarchy` - \u0412\u0438\u0434 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 - `all`, `mun` \u0438\u043b\u0438 `adm`\n\n        `objectid` - `objectid` \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\n\n    \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443.\n\n:housenum:\n    \u0422\u0438\u043f: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.\n\n    \u041f\u043e\u0438\u0441\u043a \u0434\u043e\u043c\u0430 \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044e \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043d\u043e\u043c\u0435\u0440\u0435.\n\n:page:\n    \u0422\u0438\u043f: \u0447\u0438\u0441\u043b\u043e. \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.\n\n----\n\n:\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\n    \u0422\u0438\u043f: application/json.\n\n    \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c DRF.\n\n----\n\n:\u041f\u0440\u0438\u043c\u0435\u0440\u044b:\n\n::\n\n    GET /gar/v1/houses/?parent=adm:210826&name=5\n\n    {\n      \"count\": 65,\n      \"next\": \"http://127.0.0.1:8000/gar/v1/houses/?name=5&page=2&parent=adm%3A210826\",\n      \"previous\": null,\n      \"results\": [\n        {\n          \"id\": 52384730,\n          \"params\": [\n            {\n              \"id\": 197175620,\n              \"typeid\": {\n                \"id\": 3,\n                \"name\": \"\u0418\u041d\u041d \u0424\u041b \u0422\u0415\u0420 \u0423\u0427\",\n                \"code\": \"territorialifnsflcode\",\n                \"desc\": \"\u0422\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0418\u0424\u041d\u0421 \u042e\u041b\",\n                \"updatedate\": \"2018-06-15\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 158819227,\n              \"value\": \"1717\",\n              \"updatedate\": \"2020-11-21\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2020-11-21\"\n            },\n            {\n              \"id\": 197175630,\n              \"typeid\": {\n                \"id\": 6,\n                \"name\": \"\u041e\u041a\u0410\u0422\u041e\",\n                \"code\": \"OKATO\",\n                \"desc\": \"\u041e\u041a\u0410\u0422\u041e\",\n                \"updatedate\": \"2018-06-19\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 0,\n              \"value\": \"93243825001\",\n              \"updatedate\": \"2019-12-14\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2079-06-06\"\n            },\n            {\n              \"id\": 197175631,\n              \"typeid\": {\n                \"id\": 5,\n                \"name\": \"\u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\",\n                \"code\": \"PostIndex\",\n                \"desc\": \"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0435\",\n                \"updatedate\": \"2018-06-15\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 0,\n              \"value\": \"667903\",\n              \"updatedate\": \"2019-12-14\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2079-06-06\"\n            },\n            {\n              \"id\": 197175643,\n              \"typeid\": {\n                \"id\": 14,\n                \"name\": \"\u041f\u0440\u0438\u0437\u043d\u0430\u043a \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430\",\n                \"code\": \"DivisionType\",\n                \"desc\": \"\u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0432 \u043a\u0430\u043a\u043e\u043c \u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0430\u0434\u0440\u0435\u0441, \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u043c/\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c\",\n                \"updatedate\": \"2018-12-14\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 0,\n              \"value\": \"0\",\n              \"updatedate\": \"2019-12-14\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2079-06-06\"\n            },\n            {\n              \"id\": 197175692,\n              \"typeid\": {\n                \"id\": 15,\n                \"name\": \"\u041f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\",\n                \"code\": \"Counter\",\n                \"desc\": \"\u041f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043e\u0431\u044c\u0435\u043a\u0442\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\",\n                \"updatedate\": \"2018-12-14\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 0,\n              \"value\": \"18\",\n              \"updatedate\": \"2019-12-14\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2079-06-06\"\n            },\n            {\n              \"id\": 197175626,\n              \"typeid\": {\n                \"id\": 7,\n                \"name\": \"OKTMO\",\n                \"code\": \"OKTMO\",\n                \"desc\": \"OKTMO\",\n                \"updatedate\": \"2018-06-19\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 51296790,\n              \"value\": \"93643425\",\n              \"updatedate\": \"2019-12-14\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2019-12-13\"\n            },\n            {\n              \"id\": 197175728,\n              \"typeid\": {\n                \"id\": 7,\n                \"name\": \"OKTMO\",\n                \"code\": \"OKTMO\",\n                \"desc\": \"OKTMO\",\n                \"updatedate\": \"2018-06-19\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296790,\n              \"changeidend\": 0,\n              \"value\": \"93643425101\",\n              \"updatedate\": \"2019-12-14\",\n              \"startdate\": \"2019-12-13\",\n              \"enddate\": \"2079-06-06\"\n            },\n            {\n              \"id\": 197175636,\n              \"typeid\": {\n                \"id\": 13,\n                \"name\": \"\u0420\u0435\u0435\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\",\n                \"code\": \"ReestrNum\",\n                \"desc\": \"\u0420\u0435\u0435\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\",\n                \"updatedate\": \"2018-11-12\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 51296790,\n              \"value\": \"936434251010000000220018000000005\",\n              \"updatedate\": \"2019-12-14\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2019-12-13\"\n            },\n            {\n              \"id\": 197176157,\n              \"typeid\": {\n                \"id\": 13,\n                \"name\": \"\u0420\u0435\u0435\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\",\n                \"code\": \"ReestrNum\",\n                \"desc\": \"\u0420\u0435\u0435\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\",\n                \"updatedate\": \"2018-11-12\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296790,\n              \"changeidend\": 0,\n              \"value\": \"936434251010000000220018000000000\",\n              \"updatedate\": \"2019-12-14\",\n              \"startdate\": \"2019-12-13\",\n              \"enddate\": \"2079-06-06\"\n            },\n            {\n              \"id\": 197173900,\n              \"typeid\": {\n                \"id\": 1,\n                \"name\": \"\u0418\u0424\u041d\u0421 \u0424\u041b\",\n                \"code\": \"IFNSFL\",\n                \"desc\": \"\u0418\u0424\u041d\u0421 \u0424\u041b\",\n                \"updatedate\": \"2018-06-15\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 158819227,\n              \"value\": \"1720\",\n              \"updatedate\": \"2020-11-21\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2020-11-21\"\n            },\n            {\n              \"id\": 679599960,\n              \"typeid\": {\n                \"id\": 1,\n                \"name\": \"\u0418\u0424\u041d\u0421 \u0424\u041b\",\n                \"code\": \"IFNSFL\",\n                \"desc\": \"\u0418\u0424\u041d\u0421 \u0424\u041b\",\n                \"updatedate\": \"2018-06-15\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 158819227,\n              \"changeidend\": 0,\n              \"value\": \"1700\",\n              \"updatedate\": \"2020-11-21\",\n              \"startdate\": \"2020-11-21\",\n              \"enddate\": \"2079-06-06\"\n            },\n            {\n              \"id\": 679666370,\n              \"typeid\": {\n                \"id\": 2,\n                \"name\": \"\u0418\u0424\u041d\u0421 \u042e\u041b\",\n                \"code\": \"IFNSUL\",\n                \"desc\": \"\u0418\u0424\u041d\u0421 \u042e\u041b\",\n                \"updatedate\": \"2018-06-15\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 158819227,\n              \"changeidend\": 0,\n              \"value\": \"1700\",\n              \"updatedate\": \"2020-11-21\",\n              \"startdate\": \"2020-11-21\",\n              \"enddate\": \"2079-06-06\"\n            },\n            {\n              \"id\": 197175624,\n              \"typeid\": {\n                \"id\": 4,\n                \"name\": \"\u0418\u0424\u041d\u0421 \u042e\u041b \u0422\u0415\u0420 \u0423\u0427\",\n                \"code\": \"territorialifnsulcode\",\n                \"desc\": \"\u0422\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0418\u0424\u041d\u0421 \u0424\u041b\",\n                \"updatedate\": \"2018-06-15\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 158819227,\n              \"value\": \"1717\",\n              \"updatedate\": \"2020-11-21\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2020-11-21\"\n            },\n            {\n              \"id\": 197175616,\n              \"typeid\": {\n                \"id\": 2,\n                \"name\": \"\u0418\u0424\u041d\u0421 \u042e\u041b\",\n                \"code\": \"IFNSUL\",\n                \"desc\": \"\u0418\u0424\u041d\u0421 \u042e\u041b\",\n                \"updatedate\": \"2018-06-15\",\n                \"startdate\": \"2011-11-01\",\n                \"enddate\": \"2079-06-06\",\n                \"isactive\": true\n              },\n              \"objectid\": 33665495,\n              \"changeid\": 51296115,\n              \"changeidend\": 158819227,\n              \"value\": \"1720\",\n              \"updatedate\": \"2020-11-21\",\n              \"startdate\": \"1900-01-01\",\n              \"enddate\": \"2020-11-21\"\n            }\n          ],\n          \"housetype\": {\n            \"id\": 3,\n            \"name\": \"\u0414\u043e\u043c\u043e\u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435\",\n            \"shortname\": \"\u0434\u0432\u043b\u0434.\",\n            \"desc\": \"\u0414\u043e\u043c\u043e\u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435\",\n            \"updatedate\": \"1900-01-01\",\n            \"startdate\": \"1900-01-01\",\n            \"enddate\": \"2015-11-05\",\n            \"isactive\": false\n          },\n          \"addtype1\": null,\n          \"addtype2\": null,\n          \"objectguid\": \"0e27bfa6-d3e2-4160-967a-5f14d43fbc98\",\n          \"changeid\": 51296790,\n          \"housenum\": \"18\",\n          \"addnum1\": null,\n          \"addnum2\": null,\n          \"previd\": 20010713,\n          \"nextid\": 0,\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"2019-12-13\",\n          \"enddate\": \"2079-06-06\",\n          \"isactual\": true,\n          \"isactive\": true,\n          \"opertypeid\": 20,\n          \"objectid\": 33665495\n        }\n      ]\n    }\n\n\n\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0434\u043e\u043c\u0435\n=================\n::\n\n    GET /gar/v1/houses/:objectid:/\n\n:\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n\n:objectid:\n    \u0422\u0438\u043f: \u0447\u0438\u0441\u043b\u043e.\n\n    \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0434\u043e\u043c\u0430\n\n\n----\n\n:\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\n    \u0422\u0438\u043f: application/json.\n\n----\n\n:\u041f\u0440\u0438\u043c\u0435\u0440\u044b:\n\n::\n\n    GET /gar/v1/houses/33663074/\n\n    {\n      \"id\": 60865585,\n      \"params\": [\n        {\n          \"id\": 197161766,\n          \"typeid\": {\n            \"id\": 1,\n            \"name\": \"\u0418\u0424\u041d\u0421 \u0424\u041b\",\n            \"code\": \"IFNSFL\",\n            \"desc\": \"\u0418\u0424\u041d\u0421 \u0424\u041b\",\n            \"updatedate\": \"2018-06-15\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 158819225,\n          \"value\": \"1720\",\n          \"updatedate\": \"2020-11-21\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2020-11-21\"\n        },\n        {\n          \"id\": 197163461,\n          \"typeid\": {\n            \"id\": 13,\n            \"name\": \"\u0420\u0435\u0435\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\",\n            \"code\": \"ReestrNum\",\n            \"desc\": \"\u0420\u0435\u0435\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\",\n            \"updatedate\": \"2018-11-12\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51293350,\n          \"changeidend\": 0,\n          \"value\": \"936434251010000000220012000000000\",\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"2019-12-13\",\n          \"enddate\": \"2079-06-06\"\n        },\n        {\n          \"id\": 197163411,\n          \"typeid\": {\n            \"id\": 6,\n            \"name\": \"\u041e\u041a\u0410\u0422\u041e\",\n            \"code\": \"OKATO\",\n            \"desc\": \"\u041e\u041a\u0410\u0422\u041e\",\n            \"updatedate\": \"2018-06-19\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 0,\n          \"value\": \"93243825001\",\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2079-06-06\"\n        },\n        {\n          \"id\": 197163416,\n          \"typeid\": {\n            \"id\": 5,\n            \"name\": \"\u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\",\n            \"code\": \"PostIndex\",\n            \"desc\": \"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0435\",\n            \"updatedate\": \"2018-06-15\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 0,\n          \"value\": \"667903\",\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2079-06-06\"\n        },\n        {\n          \"id\": 197163430,\n          \"typeid\": {\n            \"id\": 14,\n            \"name\": \"\u041f\u0440\u0438\u0437\u043d\u0430\u043a \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430\",\n            \"code\": \"DivisionType\",\n            \"desc\": \"\u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0432 \u043a\u0430\u043a\u043e\u043c \u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0430\u0434\u0440\u0435\u0441, \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u043c/\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c\",\n            \"updatedate\": \"2018-12-14\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 0,\n          \"value\": \"0\",\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2079-06-06\"\n        },\n        {\n          \"id\": 197163432,\n          \"typeid\": {\n            \"id\": 15,\n            \"name\": \"\u041f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\",\n            \"code\": \"Counter\",\n            \"desc\": \"\u041f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043e\u0431\u044c\u0435\u043a\u0442\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\",\n            \"updatedate\": \"2018-12-14\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 0,\n          \"value\": \"12\",\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2079-06-06\"\n        },\n        {\n          \"id\": 197163408,\n          \"typeid\": {\n            \"id\": 7,\n            \"name\": \"OKTMO\",\n            \"code\": \"OKTMO\",\n            \"desc\": \"OKTMO\",\n            \"updatedate\": \"2018-06-19\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 51293350,\n          \"value\": \"93643425\",\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2019-12-13\"\n        },\n        {\n          \"id\": 197163454,\n          \"typeid\": {\n            \"id\": 7,\n            \"name\": \"OKTMO\",\n            \"code\": \"OKTMO\",\n            \"desc\": \"OKTMO\",\n            \"updatedate\": \"2018-06-19\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51293350,\n          \"changeidend\": 0,\n          \"value\": \"93643425101\",\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"2019-12-13\",\n          \"enddate\": \"2079-06-06\"\n        },\n        {\n          \"id\": 197163423,\n          \"typeid\": {\n            \"id\": 13,\n            \"name\": \"\u0420\u0435\u0435\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\",\n            \"code\": \"ReestrNum\",\n            \"desc\": \"\u0420\u0435\u0435\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\",\n            \"updatedate\": \"2018-11-12\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 51293350,\n          \"value\": \"936434251010000000220012000000005\",\n          \"updatedate\": \"2019-12-14\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2019-12-13\"\n        },\n        {\n          \"id\": 197163397,\n          \"typeid\": {\n            \"id\": 3,\n            \"name\": \"\u0418\u041d\u041d \u0424\u041b \u0422\u0415\u0420 \u0423\u0427\",\n            \"code\": \"territorialifnsflcode\",\n            \"desc\": \"\u0422\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0418\u0424\u041d\u0421 \u042e\u041b\",\n            \"updatedate\": \"2018-06-15\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 158819225,\n          \"value\": \"1717\",\n          \"updatedate\": \"2020-11-21\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2020-11-21\"\n        },\n        {\n          \"id\": 679599958,\n          \"typeid\": {\n            \"id\": 1,\n            \"name\": \"\u0418\u0424\u041d\u0421 \u0424\u041b\",\n            \"code\": \"IFNSFL\",\n            \"desc\": \"\u0418\u0424\u041d\u0421 \u0424\u041b\",\n            \"updatedate\": \"2018-06-15\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 158819225,\n          \"changeidend\": 0,\n          \"value\": \"1700\",\n          \"updatedate\": \"2020-11-21\",\n          \"startdate\": \"2020-11-21\",\n          \"enddate\": \"2079-06-06\"\n        },\n        {\n          \"id\": 197163402,\n          \"typeid\": {\n            \"id\": 4,\n            \"name\": \"\u0418\u0424\u041d\u0421 \u042e\u041b \u0422\u0415\u0420 \u0423\u0427\",\n            \"code\": \"territorialifnsulcode\",\n            \"desc\": \"\u0422\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0418\u0424\u041d\u0421 \u0424\u041b\",\n            \"updatedate\": \"2018-06-15\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 158819225,\n          \"value\": \"1717\",\n          \"updatedate\": \"2020-11-21\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2020-11-21\"\n        },\n        {\n          \"id\": 197161768,\n          \"typeid\": {\n            \"id\": 2,\n            \"name\": \"\u0418\u0424\u041d\u0421 \u042e\u041b\",\n            \"code\": \"IFNSUL\",\n            \"desc\": \"\u0418\u0424\u041d\u0421 \u042e\u041b\",\n            \"updatedate\": \"2018-06-15\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 51292720,\n          \"changeidend\": 158819225,\n          \"value\": \"1720\",\n          \"updatedate\": \"2020-11-21\",\n          \"startdate\": \"1900-01-01\",\n          \"enddate\": \"2020-11-21\"\n        },\n        {\n          \"id\": 679666368,\n          \"typeid\": {\n            \"id\": 2,\n            \"name\": \"\u0418\u0424\u041d\u0421 \u042e\u041b\",\n            \"code\": \"IFNSUL\",\n            \"desc\": \"\u0418\u0424\u041d\u0421 \u042e\u041b\",\n            \"updatedate\": \"2018-06-15\",\n            \"startdate\": \"2011-11-01\",\n            \"enddate\": \"2079-06-06\",\n            \"isactive\": true\n          },\n          \"objectid\": 33663074,\n          \"changeid\": 158819225,\n          \"changeidend\": 0,\n          \"value\": \"1700\",\n          \"updatedate\": \"2020-11-21\",\n          \"startdate\": \"2020-11-21\",\n          \"enddate\": \"2079-06-06\"\n        }\n      ],\n      \"housetype\": {\n        \"id\": 3,\n        \"name\": \"\u0414\u043e\u043c\u043e\u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435\",\n        \"shortname\": \"\u0434\u0432\u043b\u0434.\",\n        \"desc\": \"\u0414\u043e\u043c\u043e\u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435\",\n        \"updatedate\": \"1900-01-01\",\n        \"startdate\": \"1900-01-01\",\n        \"enddate\": \"2015-11-05\",\n        \"isactive\": false\n      },\n      \"addtype1\": null,\n      \"addtype2\": null,\n      \"objectguid\": \"85e4ae37-bd1a-42ec-ad27-5c4343d53adf\",\n      \"changeid\": 51293350,\n      \"housenum\": \"12\",\n      \"addnum1\": null,\n      \"addnum2\": null,\n      \"previd\": 20009203,\n      \"nextid\": 0,\n      \"updatedate\": \"2019-12-14\",\n      \"startdate\": \"2019-12-13\",\n      \"enddate\": \"2079-06-06\",\n      \"isactual\": true,\n      \"isactive\": true,\n      \"opertypeid\": 20,\n      \"objectid\": 33663074\n    }\n\n\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n---------\n\n1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 `m3-rest-gar`::\n\n    pip install m3-rest-gar\n\n2. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 `rest_framework, `django_filters`, `m3_gar`, `m3_rest_gar`\n\u0432 `INSTALLED_APPS` \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 `DjangoFilterBackend`\n\n::\n\n    INSTALLED_APPS = [\n        ...,\n        'rest_framework',\n        'django_filters',\n        'm3_gar',\n        'm3_rest_gar',\n    ]\n\n    REST_FRAMEWORK = {\n        ...,\n        'DEFAULT_FILTER_BACKENDS': [\n            'django_filters.rest_framework.DjangoFilterBackend',\n        ],\n    }\n\n3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 `m3_gar` \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435\n\n4. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 urlpatterns m3_rest_gar\n\n::\n\n    urlpatterns = [\n        ...,\n        path('gar/', include('m3_rest_gar.urls')),\n    ]\n\n\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 OAuth2\n-------------------------------\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 OAuth2\n\n::\n\n    pip install django-oauth-toolkit\n\n\n\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (settings.py)\n\n::\n\n    INSTALLED_APPS = [\n        ...\n        'oauth2_provider',\n    ]\n\n    MIDDLEWARE = [\n        ...,\n        'oauth2_provider.middleware.OAuth2TokenMiddleware',\n    ]\n\n    AUTHENTICATION_BACKENDS = [\n        'oauth2_provider.backends.OAuth2Backend',\n        # \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f \u0432 /admin:\n        # 'django.contrib.auth.backends.ModelBackend',\n    ]\n\n    REST_FRAMEWORK = {\n        ...,\n        'DEFAULT_AUTHENTICATION_CLASSES': [\n            'oauth2_provider.contrib.rest_framework.OAuth2Authentication',\n        ],\n        'DEFAULT_PERMISSION_CLASSES': [\n            'rest_framework.permissions.IsAuthenticated',\n        ],\n    }\n\n\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c urlpatterns (urls.py)\n\n::\n\n    urlpatterns = patterns('',\n        ...\n        path('oauth2/', include('oauth2_provider.urls', namespace='oauth2_provider')),\n    )\n\n\n\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u0431\u0430\u0437\u044b\n\n::\n\n    python manage.py migrate\n\n\n\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\n==================================\n\n\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 django-admin /admin\n\n\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Users \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u044b.\n(\u041c\u043e\u0436\u043d\u043e \u0432\u0441\u0435\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u043e\u043d\u0438 \u0432\u0441\u0451-\u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430)\n\n\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Applications \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430,\n* \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n* `Client type` \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c *Confidencial*\n* `Authorization grant type` \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c *Resource owner password-based*\n* \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\n\n\n\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u0438\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\n=============================================\n\n1. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430\n\n\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c POST-\u0437\u0430\u043f\u0440\u043e\u0441:\n\n  POST /oauth2/token/\n\n:\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n\n:client_id:\n    \u0422\u0438\u043f: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\n\n:client_secret:\n    \u0422\u0438\u043f: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u0421\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\n\n:grant_type:\n    \u0422\u0438\u043f: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u0422\u0438\u043f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: *password*\n\n:username:\n    \u0422\u0438\u043f: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043a\u0435\u043d\n\n:password:\n    \u0422\u0438\u043f: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u041f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n\n----\n\n:\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\n    \u0422\u0438\u043f: application/json.\n\n::\n\n    {\n        \"access_token\": \u0442\u043e\u043a\u0435\u043d \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443,\n        \"token_type\": \"Bearer\",\n        \"expires_in\": \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0442\u043e\u043a\u0435\u043d\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445,\n        \"refresh_token\": \u0442\u043e\u043a\u0435\u043d \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f,\n        \"scope\": \"read\"\n    }\n\n\n2. \u0417\u0430\u043f\u0440\u043e\u0441 \u0434\u0430\u043d\u043d\u044b\u0445\n\n\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u0430 \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443:\n\n::\n    Authorization: Bearer <\u0442\u043e\u043a\u0435\u043d>\n\n\n\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c PyCharm (\u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432)\n============================================================================\n\n1. \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 Django-\u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435\u043c (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e PROJECT_DIR/venv). \u0417\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u0435\u0435 PROJECT_DIR - \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f PyCharm \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\n\n2. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435::\n\n    pip install --src PROJECT_DIR -e git+ssh://git@stash.bars-open.ru:7999/m3/m3-gar.git@master#egg=m3_gar\n    pip install --src PROJECT_DIR -e git+ssh://git@stash.bars-open.ru:7999/m3/m3-rest-gar.git@master#egg=m3_rest_gar\n\n3. \u041e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043a\u0430\u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 (Mark as Sources Root)::\n\n    PROJECT_DIR/m3-gar/m3_gar\n    PROJECT_DIR/m3-rest-gar/m3_rest_gar\n\n4. \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 PROJECT_DIR/m3-rest-gar/test_project/test_project \u0444\u0430\u0439\u043b local_settings.py, \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 dev_settings.py, \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0435\u0441\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.\n\n5. \u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 PyCharm. File->Settings->Languages & Frameworks->Django::\n\n    Django project root: PROJECT_DIR/m3-rest-gar/test_project\n    Settings: PROJECT_DIR/m3-rest-gar/test_project/test_project/local_settings.py.\n\n6. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Django \u0441\u0435\u0440\u0432\u0435\u0440.\n\n7. \u0412 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0439 m3-rest-gar, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c URL \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0413\u0410\u0420 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "REST-service for GAR.",
    "version": "1.0.44",
    "project_urls": null,
    "split_keywords": [
        "django",
        "rest",
        "gar"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0eafd4a66807a263aec914ad5e9338866e3e2d7e9e0c2dce73c78b3518e0be93",
                "md5": "f84450cc7f445cbd9b4911e475387d27",
                "sha256": "46562facfb1feeb7f36f2f71d4fd57fd2b7e843f38217bcc4f48e6ed68f9767a"
            },
            "downloads": -1,
            "filename": "m3_rest_gar-1.0.44-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f84450cc7f445cbd9b4911e475387d27",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 13175,
            "upload_time": "2024-03-30T05:19:46",
            "upload_time_iso_8601": "2024-03-30T05:19:46.214200Z",
            "url": "https://files.pythonhosted.org/packages/0e/af/d4a66807a263aec914ad5e9338866e3e2d7e9e0c2dce73c78b3518e0be93/m3_rest_gar-1.0.44-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1e5fafe522a6686b99604f9f7c0662dbd3d5f9a3bde839348d0ae70582f0764b",
                "md5": "a415b47c75705bb440d3b4ff62097e9a",
                "sha256": "fe94951216c2574baf77b11eedd183c4f55787d2c035fa742e26a899f8a1507b"
            },
            "downloads": -1,
            "filename": "m3-rest-gar-1.0.44.tar.gz",
            "has_sig": false,
            "md5_digest": "a415b47c75705bb440d3b4ff62097e9a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 19691,
            "upload_time": "2024-03-30T05:19:48",
            "upload_time_iso_8601": "2024-03-30T05:19:48.543980Z",
            "url": "https://files.pythonhosted.org/packages/1e/5f/afe522a6686b99604f9f7c0662dbd3d5f9a3bde839348d0ae70582f0764b/m3-rest-gar-1.0.44.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-30 05:19:48",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "m3-rest-gar"
}
        
Elapsed time: 0.23854s