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 ответ
Следуйте шагам:
- Выберите конечную точку API. например: https://gateway.marvel.com/v1/public/characters
- Используйте значение запроса для ts. ts может быть меткой времени или любой длинной строкой. например: ts=thesoer
- Создать MD5-хэш
ts+privatekey+publickey
через код или желательно онлайн.eg: md5(ts + privKey + pubKey)
Для хеша md5: http://www.md5.cz/ - Соединить точки.
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-адрес.