Заголовок авторизации api r httr - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь получить доступ к API Open Apparel Registry, используя httr.

NB: регистрация бесплатна (необходимо войти в систему + получить код аутентификации на странице профиля). Но вы можете увидеть документацию по api swagger здесь: https://openapparel.org/api/docs/#! / Services / services_list

Вот как вы авторизуетесь в веб-версии: введите описание изображения здесь

oar_root_api <- "https://openapparel.org/api/facilities/"
oar_token <- XXX
oar_api_facilities_GET <- httr::GET(url = oar_root_api,
                                    add_headers(
                                                `Authorization` = oar_token),
                                    verbose()
                                    )

В ответ я получаю код 401, поэтому что-то не так с моей авторизацией, но я пробовал много способов. Не могу понять, как это правильно указать.

Ответы [ 2 ]

2 голосов
/ 31 июля 2020

Открытый реестр одежды (OAR) использует Django REST Framework для предоставления окон API. Класс TokenAuthentication требует, чтобы значение заголовка Authorization имело префикс «Token». Из документации

Для аутентификации клиентов ключ токена должен быть включен в HTTP-заголовок авторизации. Ключ должен иметь префикс в виде строкового литерала «Token» с пробелом, разделяющим две строки. Например:

Authorization: Token 9944b09.....

Я не знаком с R, но я искал конкатенацию строк, и похоже, что функция paste построит нужное вам значение заголовка.

oar_root_api <- "https://openapparel.org/api/facilities/"
oar_token <- XXX
oar_api_facilities_GET <- httr::GET(url = oar_root_api,
                                    add_headers(
                                                `Authorization` = paste("Token ", oar_token)),
                                    verbose()
                                    )
2 голосов
/ 31 июля 2020

Сожалеем, что у вас возникли трудности. Эта дополнительная документация может помочь: https://docs.google.com/document/d/1ZKCN84Eu9WDAXUokojOw7Dcg5TAJw0vKnVk7RPrTPZ0/edit?usp=sharing

Мы часто обнаруживаем, что пользователям необходимо добавлять префикс «Токен» (см. Стр. 3), что, как я понимаю, не является стандартной практикой - это то, что мы намерены изменить!

Дайте нам знать, как у вас дела.

  • OAR
...