Request id что это
Перейти к содержимому

Request id что это

  • автор:

API — тестовый доступ

В качестве входных параметров, передаются следующие аргументы:

  1. grant_type – тип авторизации, всегда будет равен = password, так как авторизация происходит по имени пользователя и паролю
  2. userName – имя пользователя
  3. password – пароль пользователя

Пример request

POST /Authorization HTTP/1.1 Host: api.GosReestrRF.ru Content-Type: application/x-www-form-urlencoded Cache-Control: no-cache grant_type=password&userName=&password= https://api.GosReestrRF.ru/Authorization

Возвращаемые данные

Метод возвращает json, в котором содержатся три параметра:

  1. access_token — идентификатор сессии (токен), который необходимо использовать в дальнейшей работе с сервисом. Токен выдается на одни сутки, с момента запроса;
  2. token_type – тип токена
  3. expires_in – время срока действия токена, в секундах

Пример response

Тестирование метода

Получение токена авторизации:

# SEARCHSERVICE: Метод GetStatements_ActualV2

Общее описание

Применение данного метода позволяет посредством одной команды получать основные сведения и полные актуальные выписки из ГосРеестра в части ЕГРЮЛ, ЕГРИП в формате xml в отношении нескольких юридических лиц и индивидуальных предпринимателей, поиск по нескольким поисковым элементам: ОГРН и ИНН юридических лиц и индивидуальных предпринимателей.

Структурный пример запроса / ответа

Входные параметры

В качестве входных параметров, передаются следующие аргументы:

  1. requestId – это уникальный идентификатор запроса, который клиент устанавливает сам, для идентификации ответов. Формат индентификатора – произвольный
  2. regNumbers – список необходимых ОГРН/ОГРНИП/ИНН

Пример request

POST /SearchService/GetStatements_ActualV2 HTTP/1.1 Host: api.GosReestrRF.ru Content-Type: application/json;charset=UTF-8 Authorization: bearer 1PveD8vQQFa30l6x5L-G544_-zjsYDfVbFOlSGQLhidZJBycUnsArEzGf8Qu1mMLodCTnLU9bAHZZ97WOm7sOlEFKKTM7Tl2DAcdrG6vwgMoDhLzB7Iu8sg2nP037qyceEiC9mM3rV4ljSWQBNokabyzo3ZdqjfyOCAyjfa8qvO6WG9uMZL0wa58qllp0CaN5xEiGs40o2J_ZrnB47coGsbz1VqiCvghesF79LR_lZtfAgsNaeAfEQvIkr1NGLa8wb98-2TiQz2Vn43Hk9isvo6GrNbMhEfaTvOkSwF5o8ICxn8g5SFqZQHl9_Sqr0d Cache-Control: no-cache
 < "requestId":"123-456-789", "regNumbers":["1073914000489","402904261850","7727649295","304381736500162"] >https://api.gosReestrRF.ru/SearchService/GetStatements_ActualV2

Возвращаемые данные

Возвращается массив json-элементов, содержащий найденные данные по входным критериям.

  1. requestId – Уникальный идентификатор запроса, задается в вольной форме на стороне клиента, для идентификации запросов.
  2. xml_allInfo – XML код, для найденного индивидуального предпринимателя или юридического лица, в сжатом виде (описание методов сжатия и распаковки).
  3. xml_generalInfo – XML код в котором содержатся основные сведения об индивидуальном предпринимателе или юридическом лице.
  4. reestr – Тип xml файла ЕГРЮЛ или ЕГРИП
  5. version – Версия xml файла налоговой. Согласно новому регламенту, теперь последняя версия для ЕГРЮЛ — 4.06, для ЕГРИП — 4.05. Подробнее

Пример response

HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Content-Length: length [ < "requestId": "123-456-789", "xml_allInfo": "G1cQfq/U/3Dkp0Ysda45w4eas56d45646as5d463qwerAAdsdfd98", "xml_generalInfo":  <СвИП ОГРНИП="317237500417837" ИННФЛ="231516752681" Статус="ДЕЙСТВУЮЩИЙ"><СвФЛ>", "reestr":"ЕГРИП", "version":"4.05" >, < "requestId": "123-456-789", "xml_allInfo": "I0cQfY+Uf2j52dgz4xuWgH2KorxF+YXsKkJKQMpK2TxyWTYPoMUxl", "xml_generalInfo": <СвИП ОГРНИП="317237500417340" ИННФЛ="231129915410" Статус="ДЕЙСТВУЮЩИЙ"><СвФЛ>", "reestr":"ЕГРИП", "version":"4.05" >, < "requestId": "123-456-789", "xml_allInfo": "G8cVvi/Qd1jwqgUoav+4JAHJuSqK3hV9hSYoDLQ20ABNLyXZbuLak", "xml_generalInfo": <СвИП ОГРНИП="316231500053162" ИННФЛ="231516752681" Статус="Индивидуальный предприниматель прекратил деятельность в связи с принятием им соответствующего решения"><СвФЛ>", "reestr":"ЕГРИП", "version":"4.05" >, < "requestId": "123-456-789", "xml_allInfo": "QWEQfaeKf5jSA0+yvLu62WA7TxQvPFHFF5AUlSqwCwKER0shCSmHW", "xml_generalInfo": "<СвЮЛ ОГРН="1174401008880" ИНН="4401184680" Статус="ДЕЙСТВУЮЩЕЕ">", "reestr":"ЕГРЮЛ", "version":"4.06" >, < "requestId": "123-456-789", "xml_allInfo": "G0cUvq/Ud1j5ImolL9ld73ptBchV1ZteVeoTNFEUKSVSEzW95Cckr", "xml_generalInfo": "<СвЮЛ ОГРН="1117423000287" ИНН="7423009871" Статус="ДЕЙСТВУЮЩЕЕ">", "reestr":"ЕГРЮЛ", "version":"4.06" > ]

Тестирование метода

Распаковать полученный json-элемент xml_allInfo:

# SEARCHSERVICE: МЕТОД GETSTATEMENTS_HISTORICAL

Общее описание

Применение данного метода позволяет посредством одной команды получать сведения из ГосРеестра в части ключевых изменений ЮЛ в формате xml в отношении нескольких юридических лиц, поиск производится по нескольким поисковым элементам: ОГРН и ИНН юридического лица.

Структурный пример запроса / ответа

Входные параметры

В качестве входных параметров, передаются следующие аргументы:

  1. requestId – это уникальный идентификатор запроса, который клиент устанавливает сам, для идентификации ответов. Формат индентификатора – произвольный
  2. regNumbers – список необходимых ОГРН/ОГРНИП/ИНН

Пример request

POST /SearchService/GetStatements_Historical HTTP/1.1 Host: api.GosReestrRF.ru Content-Type: application/json;charset=UTF-8 Authorization: bearer 1PveD8vQQFa30l6x5L-G544_-zjsYDfVbFOlSGQLhidZJBycUnsArEzGf8Qu1mMLodCTnLU9bAHZZ97WOm7sOlEFKKTM7Tl2DAcdrG6vwgMoDhLzB7Iu8sg2nP 037qyceEiC9mM3rV4ljSWQBNokabyzo3ZdqjfyOCAyjfa8qvO6WG9uMZL0wa58qllp0CaN5xEiGs4 0o2J_ZrnB47coGsbz1VqiCvghesF79LR_lZtfAgsNaeAfEQvIkr1NGLa8wb98- Cache-Control: no-cache
 < "requestId":"123-456-789", "regNumbers":["1117423000287","5147746223114","1161690138114","6324034995"] >https://api.GosReestrRF.ru/SearchService/GetStatements_Historical

Возвращаемые данные

Возвращается массив json-элементов, содержащий найденные данные по входным критериям.

  1. requestId – Уникальный идентификатор запроса, задается в вольной форме на стороне клиента, для идентификации запросов.
  2. xml_historical – XML код содержащий ключевые изменения, для найденного юридического лица, в сжатом виде. В случае если был прислан ошибочный (несуществующий) ОГРН / ОГРНИП / ИНН, в данном параметре будет фраза – «ОГРН или ОГРНИП или ИНН — не выявлен».

Пример response

HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Content-Length: length [ < "requestId": "123-456-789", "xml_historical": "mQAAAB+LCAAAAAAABACzsa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxLt1Uqz8xLyS8v1jU0MjVUsrezcXUPCvXJyCwuUbgw5cKGi00XNlyYdLH7wmZbJSMDQwtdQ0NdIyMlO5sLCy9surDuwmyFC/MuTL6w4MJcoMGGhuYmRsYGBgZGFuZKChdmXJgLEoaIWVqYGyop6NvZ6MMtsAMAJLfO8pkAAAA=" >, < "requestId": "123-456-789", "xml_historical": "tDIAAB+LCAAAAAAABADtW1tPG0cU/isrP/QJxzOzO3tRgTxVfelTpf6CJmqQWlBL2vQxQZXy0Ie4BnP1BYMTWiWCKCUVbbj8heN/1O/M7hpflrVFMLHNCrB3zpy5fd+3Z2Znltn7v/7wvfXLw5+WF5YW53LynshZDxe/XXqwsPjdXO7JwuKDpSfLeam0zN2fn/3iy6+/+erRwvJji9bobWuF3lKp9Tv9PZdT" >, < "requestId": "123-456-789", "xml_historical": "oSwAAB+LCAAAAAAABADtWltvG0UU/iurfeDJW+/s1RZx+oR44QmJX0ArGgkSQQrlsQ1IfeChjuMQx6nXV0BVQ1KVBBmay184+4/45uzFsWVv1i5OvYmjrL1z5szMme98c+bmlfs/fvO18sPD7zbXNtZLqrinq8rD9S83Hqytf1VSn6ytP9h4sqkJwxbq/dWVTz79/IvPHq1tPlaoSm/8LXpDFf8X+" >, < "requestId": "123-456-789", "xml_historical": "cCwAAB+LCAAAAAAABADdWs1u20YQfhWCh6IFRGuXyz+htnMqeumpQJ+gCVoDrY3WadNj7B5y6CGKf1pHqmTJdpMCDaQgtQu1sZVXGL5RZ4Y/EmWJlBhQkBkkDj27w9355tvZ5cyu3/vp22+0Hx98v7u1s72hyzWhaw+2v9y5v7X91Yb+aGv7/s6jXUOattTvba5/8unnX3z29dbuQw2O4LW/D6/hwP8F/" >]

Тестирование метода

Распаковать полученный json-элемент xml_historical:

XML
Сведения для разработчиков

Для получения информации используются запросы с параметрами GET или POST.

В ответе от API приходит JSON строка, в которой присутствует xml код в сжатом виде. Сжатие строки с XML кодом, происходит при помощи стандартной библиотеки .NET Framework System.IO.Compression и класса GZipStream. Это используется для того чтобы уменьшить объем передаваемых данных.

Методы сжатия и распаковки (примеры указаны на языке программирования c# (си шарп)):

 /// <summary>/// Запаковывает строку из обычного состояния в сжатое ///</summary> /// <param name="text" />Строка для сжатия</param> /// public static string Compress(string text) < byte[] buffer = Encoding.UTF8.GetBytes(text); var memoryStream = new MemoryStream(); using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Compress, true)) < gZipStream.Write(buffer, 0, buffer.Length); >memoryStream.Position = 0; var compressedData = new byte[memoryStream.Length]; memoryStream.Read(compressedData, 0, compressedData.Length); var gZipBuffer = new byte[compressedData.Length + 4]; Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length); Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gZipBuffer, 0, 4); return Convert.ToBase64String(gZipBuffer); > /// <summary>/// Распаковывает строку из сжатого состояния в обычное ///</summary> /// <param name="compressedText" />Строка в сжатом виде</param> /// public static string Decompress(string compressedText) < byte[] gZipBuffer = Convert.FromBase64String(compressedText); using (var memoryStream = new MemoryStream()) < int dataLength = BitConverter.ToInt32(gZipBuffer, 0); memoryStream.Write(gZipBuffer, 4, gZipBuffer.Length - 4); var buffer = new byte[dataLength]; memoryStream.Position = 0; using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Decompress)) < gZipStream.Read(buffer, 0, buffer.Length); >return Encoding.UTF8.GetString(buffer); > > 
  • Основные ссылки
  • Статистическая информация
  • Сервисы и услуги
  • Новости
  • Общая информация
  • Федеральная служба информации в СМИ
  • Правила использования
  • Контактные данные
  • 115093 Москва, Партийный пер., д. 1, корп. 57, стр. 3
  • (499) 755-52-11
  • info@fsirf.ru

© 2009–2023 Федеральная служба информации 18+

Федеральная Служба Информации. РФ

Свидетельство о регистрации ИА № ФС77-61652 от 07 мая 2015 г. выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор).

Федеральная Служба Информации. Европейское Бюро

Свидетельство о регистрации ИА № ФС77 — 60182 от 19.12.2014 выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор).

Адрес: 115093 Москва, Партийный пер., д. 1, корп. 57, стр. 3

What is the X-REQUEST-ID http header?

Then, in order (1) to corrolate an webrequest with the request forwarded to your application (2) No, because the user doesn’t send it, the router sets it (3) See (2), but it might help track individual requests while debugging.

Aug 21, 2014 at 18:30

4 Answers 4

When you’re operating a webservice that is accessed by clients, it might be difficult to correlate requests (that a client can see) with server logs (that the server can see).

The idea of the X-Request-ID is that a client can create some random ID and pass it to the server. The server then include that ID in every log statement that it creates. If a client receives an error it can include the ID in a bug report, allowing the server operator to look up the corresponding log statements (without having to rely on timestamps, IPs, etc).

As this ID is generated (randomly) by the client it does not contain any sensitive information, and should thus not violate the user’s privacy. As a unique ID is created per request it does also not help with tracking users.

Перевод «request ID verifying» на русский

In an effort to enforce the ban on selling alcohol products to minors, the commission has approved a proposal to add a provision to the draft law that would give salespeople the legal right to request ID verifying the age of the customer.

Также в целях реализации запрета по продаже алкогольной продукции несовершеннолетним Комиссия согласилась с предложением о внесении в законопроект положения, законодательно закрепляющего право работника торговли требовать документ, удостоверяющий личность и позволяющий подтвердить возраст покупателя.

Предложить пример

Другие результаты

Additionally, if you are a trainee, you can obtain automated discount rates simply by providing a legitimate ID verifying that you are a pupil.

Кроме того, если вы студент, вы можете получить автоматические скидки, просто представив действительный идентификатор, подтверждающий, что вы являетесь студентом.

They request IDs that are not obligatory in Mexico and conduct flagrant racial profiling.

Они запрашивают удостоверения личности, которые не являются обязательными в Мексике, и проводят вопиющее расовое профилирование.

Nginx tracking запросов

Denis IT Pro. Russia

Собственно, рано или поздно, все узнают, что в nginx есть из коробки request_id, начинают ударно гуглить — находят не так много информации, либо мой гугл не такой как у вас. Ниже собственно информация, как настроить трекинг через map. Сразу уточню, что с учетом специфики, мне все равно приходится, на часте серверов явно задавать параметры, но в теории можно все делать через map

Схема трекинга запроса, ниже. Задача проследить запрос, который приходит из интернета от dmz-nginx до nginx, который стоит около приложения, на схеме он обозначен как app-nginx

Настройка DMZ nginx

Для удобства создадим два файла для include — один будем использовать на DMZ, другой на app-nginx

map $http_x_request_id $requestid < default $request_id; >proxy_set_header X-Request-ID $requestid; add_header X-Request-ID $requestid always;

расшифровка MAP

какое бы значение не получили в http_x_request_id — мы default определяем как переменная nginx — request_id, то есть http_x_request_id = request_id, которое присвоит значение нашей переменной $requestid

Небольшой пример для большего понимания

map $arg_one $result

ЭТО ВАЖНО — надо точно знать, если на уровне секции server задание
proxy_set_header

Следующие две строки задают и добавляют proxy_set_header для X-Request-ID равной переменной определенной нами $requestid это будет работать, ТОЛЬКО если на уровне секции server нет определения proxy_set_header — https://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_set_header

после чего мы делаем include указаного файла в секции http — nginx.conf

ЧТОБЫ РАБОТАЛО, так как на уровне server почти всегда задаются параметры proxy_set_header — явно указываем это в секции server

Секция server

Если у нас есть на уровне секции server. задача своих proxy_set_header, то нам необходимо дописать

proxy_set_header X-Request-ID $requestid; add_header X-Request-ID $requestid;

app-nginx

mkdir /etc/nginxinclude nano /etc/nginxinclude/requestid_dmz.conf
map $http_x_request_id $requestid < default $http_x_request_id; "" $request_id; >proxy_set_header X-Request-ID $requestid; add_header X-Request-ID $requestid always;

Тут мы в MAP задаем нашей переменной $requestid — значение которое получаем от DMZ nginx, в случае его отсутствия — генерируем собственное, остальное аналогично DMZ — добавить в http наш include

Логирование

Чтобы результат нашего труда — надо сделать кастомный формат логов добавив туда переменную, пример такого формата

log_format upstream_time '$remote_addr - $remote_user [$time_local] ' '"$scheme" "$host" "$requestid" "$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' 'rt="$request_time" urt="$upstream_response_time" ' '$server_name to: $upstream_addr $ssl_protocol "$ssl_cipher"';

Тестирование и отладка

Если все верно настроено, вы можете выполнить команду

curl -I https: //example.com

вы увидите примерно следующий вывод. где ключевое X-Request-ID, обратите внимание что оно одинаково — то есть там значение и DMZ и nginx-app одинаково

HTTP/1.1 404 Not Found Server: nginx Content-Type: text/html; charset=utf-8 Connection: keep-alive Status: 404 Not Found X-Request-Id: 35da564d64a672d15928df98da6c013a X-Runtime: 0.008507 X-Request-ID: 35da564d64a672d15928df98da6c013a

Чтобы проверить, что снаружи даже если передать свои параметры, то вернуться ваши можно командой

curl -I https: //example.com -H «X-Request-ID: 123456»

Убедиться, что appnginx корректно работает и принимает X-Request-ID, можно выполнив

curl -I https: //example.com -H «X-Request-ID: 123456»

но значение nginx-app уже вернет следующего типа, то есть возьмет указанный вами X-Request-ID

HTTP/1.1 404 Not Found Server: nginx Content-Type: text/html; charset=utf-8 Connection: keep-alive X-Request-Id: 123456 X-Runtime: 0.006694 X-Request-ID: 123456 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *