Marvel API и Insomnia (или Postman): как передать требуемое хеш-значение?

Я - относительно новый программист Javascript, и я экспериментирую с Marvel API (мне нужен доступ к изображениям для проекта), и у меня возникли небольшие проблемы, когда я обдумываю требования.

Насколько я понимаю, нужно пройти hash и ts (временная метка, я полагаю) при вызове API из серверного приложения. Но я не вижу в документации, что это требуется при использовании клиентского приложения.

Я попытался выполнить базовое тестирование конечной точки с помощью бессонницы, и я получил сообщение "You must provide a hash.", Видимо мне нужно hash для доступа на стороне клиента, а?

Я видел несколько примеров NodeJS, которые показывают вам, как генерировать hash (например, https://www.raymondcamden.com/2014/02/02/Examples-of-the-Marvel-API), но ничего для клиентской части (что я смог найти). Я также не знаю, как я мог бы генерировать это в бессоннице (или почтальоне). Любые указатели в правильном направлении будут оценены.

Я также хотел бы спросить, какую роль authorized domains играть при доступе к Marvel API с локальной машины. Нужно ли добавлять localhost к этому списку?

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

1 ответ

Следуйте шагам:

  1. Выберите конечную точку API. например: https://gateway.marvel.com/v1/public/characters
  2. Используйте значение запроса для ts. ts может быть меткой времени или любой длинной строкой. например: ts=thesoer
  3. Создать MD5-хэш ts+privatekey+publickey через код или желательно онлайн. eg: md5(ts + privKey + pubKey)Для хеша md5: http://www.md5.cz/
  4. Соединить точки. URL?ts=val&apikey=key&hash=md5Hash, например. https://gateway.marvel.com/v1/public/characters?ts=thesoer&apikey=001ac6c73378bbfff488a36141458af2&hash=72e5ed53d1398abb831c3ceec263f18b

Добавьте предварительный сценарий в свою коллекцию почтальона.

var pubkey = "your_public_key";
var pvtkey = "your_private_key";
var ts = new Date().getTime();

pm.environment.set("ts", ts)
pm.environment.set("apikey", pubkey)

var message = ts+pvtkey+pubkey;
var a = CryptoJS.MD5(message);
pm.environment.set("hash", a.toString())

И тогда вы можете звонить так

https://gateway.marvel.com/v1/public/characters?ts={{ts}}&apikey={{apikey}}&hash={{hash}}

Смотрите эту коллекцию.

Что касается авторизованных доменов, добавьте свой общедоступный IP-адрес.

Другие вопросы по тегам