Ошибка «Отсутствует токен аутентификации» при вызове API истории DVLA MOT с Почтальоном - PullRequest
0 голосов
/ 06 ноября 2019

Примечание. Я очень новичок во всем этом. Извиняюсь, если что-то неясно.

Моя главная цель - извлечь исторические данные MOT для большой партии автомобилей из API DVLA. Я понимаю, что это можно сделать с помощью Postman, который я использую (на 64-битном ноутбуке с Windows, если это вообще уместно).

DVLA предоставляет следующие инструкции

====================================================

Начало работы

Все интерфейсы API реализованы в виде успокоительных API и доступны через https.

Для доступа к API вам потребуется ключ API, который однозначно определяетисточник запроса. DVSA предоставит вам ключ API, если он одобрит ваше приложение.

Вы должны держать свой ключ API в безопасности, поскольку DVSA управляет регулированием и квотами на уровне ключа API.

Каждый запрос должен иметьследующие обязательные поля в заголовке:

Accept: application / json + v6 x-api-key: поле Content-type подтверждает, что тип ответа имеет формат JSON, а поле x-api-key служит для вашегоКлюч API для определения источника запроса.

Технические ресурсы

Доступ к API по адресу https://beta.check -mot.service.gov.uk /

Этот корневой URL-адрес изменится при переходе службы с бета-версии на живую.

Эти 4 конечные точки соответствуют четырем методам использования API:

/ trade /транспортные средства / mot-тесты? регистрация = {регистрация}

'Регистрация' - это регистрационный номер транспортного средства.

==================================================

Чтобы проверить, что это возможно, явведя следующий синглзапросить в баре в Почтальоне, выбрав «POST» и нажав «ОТПРАВИТЬ»

https://beta.check -mot.service.gov.uk / trade / Vehicles / mot-tests? Content-type = application/ json & x-api-key = ABCDEFGH®istration = MYREG

nb без кавычек или других знаков препинания, окружающих фактические значения для ABCDEFH или MYREG

Ожидаемый результат : Какой-то JSON с историей MOT для этого автомобиля

Фактический результат : {"message": "Отсутствует токен аутентификации"} {"message": "Отсутствует токен аутентификации"}

Мне неясно: - должен ли я использовать POST

  • что + v6 после приложения необходимо (другая документация опускает это)

  • Почему «Accept» и «Content-type» в документации используются взаимозаменяемо

  • Имеет ли значение порядок параметров

  • Можно ли проверить это одинаково, просто вставив URL в браузер

Спасибо за любую помощь

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Если вы используете Почтальон, вы можете использовать вкладку Authorization прямо под запросом, чтобы задать обязательные поля обязательного заголовка. Выберите Header из выпадающего списка Add to. Вы также можете добавить дополнительную информацию заголовков, используя следующую вкладку с именем Headers. (например, заголовки accept).

Редактировать: Авторизация: enter image description here

Вкладка заголовков enter image description here Как правило, вы должны получить токен авторизации при регистрации на соответствующем сайте (ключ x-api здесь). Вам необходимо выяснить значение этого токена из заголовков ответа исходного вызова. Согласно документу, которым поделился Дэнни, вы получите от них ключ x-api, как только они утвердят ваш запрос.

Редактировать: Кроме того, вы можете использовать функцию импорта, как предложил Дэнни в своем ответе. В конце дня вам нужно добавить значения в качестве заголовков вместо параметров запроса.

0 голосов
/ 06 ноября 2019

Считывание документации, найденной здесь:

https://dvsa.github.io/mot-history-api-documentation/

В нем упоминается, что эти поля должны быть добавлены как Headers:

Each request must have the following mandatory fields in 
the header:

- Accept: application/json+v6
- x-api-key: <your api key>

Есть примерыcURL запросов на сайте, чтобы помочь вам в создании запроса.

Если вы используете функцию Postman's Import в приложении (находится в правом верхнем углу), вы можете добавить этот запрос cURL в Paste Raw Text таб.

curl -H "Accept: application/json+v6" -H "x-api-key: <your_api_key>" https://beta.check-mot.service.gov.uk/trade/vehicles/mot-tests\?registration=ZZ99ABC

Postman

Это даст вам пример запроса о том, как это должно выглядеть. Отсюда вы сможете добавить свой собственный токен API и отправить запрос.

...